2つのスレッドが交互に奇数と偶数の印刷します

パブリック クラス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()。
        }
    } 
}

 

おすすめ

転載: www.cnblogs.com/trnanks/p/11517954.html