0

次のようなスレッドクラスがあるとします。

public class ThreadClass extends Thread{
      Object object = new Object();    //relevant object

      public void run(){
          synchronized(object){
              if(/*condition is true*/){
                   //do transactions here
              }else{
                  try{
                      object.wait();
                   }catch(InterruptedException e){
                       //if thread was interrupted
                   }
              }

              //other transactions here
          }   
      }

}

現在のスレッドが中断された場合、トランザクションは続行されますか? ここで他のトランザクションを処理することはできますか? ありがとう。

4

1 に答える 1

1

現在のスレッドが中断された場合、トランザクションは続行されますか?

はい。ただし、割り込みフラグが設定されます (呼び出しThread.interrupted()は true を返します)。ただし、これは実行中のコードには影響しません。

ここで他のトランザクションを並べ替える予定はありますか?

はい、上記と同じ理由で。object.wait()が実行されてからがキャッチされた場合、他のトランザクションも実行されます。ブロックInterruptedExceptionに戻らないと仮定します。catch

于 2013-01-11T03:40:42.693 に答える