ThreadA
という新しいスレッドを作成し、メインスレッドで開始しました。通知後に待機中のスレッドに制御が戻らない
ThreadA
でいくつかの操作が完了するのを待っていました。
一部の操作の後、notify
を使用して通知を送信しました。
メインスレッドのwait
以下のコードは呼び出されず、ThreadA
のコード全体が完了するのを待ちます。
問題を実行するにはスレッド化の性質やスレッドにアクセスできますか?
ここJob job = new MyJob();
job.schedule();
synchronized(job) {
job.wait();
sysout("After notify");
}
job
ですorg.eclipse.core.runtime.jobs
インサイドジョブ実行方法:
run {
synchronized(this) {
step 1();
notify();
step 2();
}
}
ここでステップ2は、大きなコードです。
コードを表示してください(どのくらい正確に 'wait'と' notify'を呼び出していますか)。 – yole
ジョブジョブ=新しいMyJob(); job.schedule();同期(ジョブ){job.wait(); sysout( "After notify")} jobはorg.eclipse.core.runtime.jobsです。 – user3302323
内部ジョブ実行方法:run {synchronized(this){ステップ1(); notify();ステップ2();}}ステップ2は大きなコードです。 – user3302323