递归方法中的多线程

时间:2017-02-20 17:05:07

标签: java multithreading recursion synchronization

根据以下代码:

synchronized int x(int y) {
    int m;

    class statement extends Thread {

            @Override
            void run() {
                //Some Statements    
                if (condition) {
                   m = x(someValue);
                }    
                //other statements
            }
     }
     //some statements

     statement st = new statement();
     st.start;
     return m;
}

每次该程序调用{​​{1}}时,它都会创建一个新线程。

现在,当程序第二次调用x(int y)时,外部线程(第一次调用中的线程)获取对象的锁定。那么第二次调用中的线程(内部线程)将获取该对象还是会被阻塞?

此致

1 个答案:

答案 0 :(得分:1)

该关键字确保只有一个主题可以在任何时间点调用'use strict'; const webpack = require('webpack'); const AotPlugin = require('@ngtools/webpack').AotPlugin; module.exports = { devtool: 'source-map', entry: './src/main.js', module: { rules: [ { test: /\.ts$/, loaders: ['@ngtools/webpack'] } ] }, plugins: [ new AotPlugin({ tsConfigPath: './src/tsconfig.json', entryModule: './src/app/app.module' }), new webpack.optimize.UglifyJsPlugin({ minimize: true, compress: false }) ], output: { filename:'./src/bundle.js' } }

但是:您无法预测外部线程是否仍在该方法中。

只是为了记录:不要那样做。不要写这样的“真实”代码。