パブリック クラスThreadTest { 公共 静的 ボイドメイン(文字列[]引数){ スレッドevenThread = 新しいスレッド(新しい PrintEven()、 "打印奇数" )。 スレッドoddThread = 新しいスレッド(新しい PrintOdd()、 "打印偶数" ); evenThread.start(); oddThread.start(); } } クラス数{ パブリック 静的 最終オブジェクトロック= 新しいオブジェクト(); } クラス PrintEven 実装 Runnableを{ @Override 公共 ボイドラン(){ 同期(Count.lock){ ため(int型 ; iは<10、I + = 2、I = 1 {)。 のSystem.out.println(にThread.currentThread()のgetName() ":" + + 私); Count.lock.notifyAll(); 試す{ Count.lock.wait()。 } キャッチ(InterruptedExceptionある電子){ e.printStackTrace(); } } Count.lock.notifyAll()。 } } } クラス PrintOdd 実装実行可能{ @Override 公共 ボイドラン(){ 同期(Count.lock){ ため(int型 I = 2、iは<10、I + = 2 ){ 。のSystem.out.println(にThread.currentThread()のgetName() + ":" + I)。 Count.lock.notifyAll(); 試す{ Count.lock.wait()。 } キャッチ(InterruptedExceptionある電子){ e.printStackTrace(); } } Count.lock.notifyAll()。 } } }