14

同期ブロック内に新しいスレッドを作成すると、スレッドの実行が完了するまでブロックはロックされたままになりますか? そうでない場合、いつまでロックされたままになりますか?

String sLine;
onClick(String line){
    synchronized (lock) {
        sLine = line;
        new Thread(new Runnable() {
            @Override
            public void run() {
                 doProcessing(Sline);    
        }).start(); 
    }
}
4

2 に答える 2

17

join()コードが新しく作成されたスレッドで実行された場合にのみロックされたままになり、終了するのを待ちます。join()への呼び出しstart()が完了した後にロックが解除されることはありません。

于 2013-04-10T12:54:40.850 に答える
1

個別の寿命を持つスレッドはありません。上記の場合、同期ブロックはスレッドの開始点までのみブロックされます。

于 2013-04-10T12:54:26.847 に答える