同期の例スレッド

タイトルの意味:3つのスレッドの確立、糸プリント10 A、Bのスレッドプリント10 B、Cのスレッドプリント10 Cは、交互に10回ABC印刷、同時に実行するスレッドを必要とします。オブジェクト待ち())(通知に伴う問題は容易に解決することができます。

コードは以下の通りであります:

パブリッククラスMyThreadPrinter2はRunnableを実装して、{

プライベート文字列名を、
プライベートオブジェクトの前。
プライベートオブジェクトの自己;

プライベートMyThreadPrinter2(文字列名、オブジェクトPREV、オブジェクト自己){
this.name =名。
this.prev = PREV。
this.self =自己;
}

@Override
公共ボイドラン(){
int型のカウント= 10。
一方、(カウント> 0){
同期(PREV){
同期(自己){
System.out.print(名);
カウント - ;

self.notify();
}
{試みる
prev.waitを();
}キャッチ(InterruptedExceptionある電子){
e.printStackTrace();
}
}

}
}

公共の静的な無効メイン(文字列[]引数)例外{スロー
オブジェクトAは=新しいオブジェクト();
オブジェクトb =新しいオブジェクト(http://www.amjmh.com/v/)。
オブジェクトC =新しいオブジェクト();
MyThreadPrinter2 PA =新しいMyThreadPrinter2( "A"、C、A)。
MyThreadPrinter2 PB =新しいMyThreadPrinter2( "B"、B)。
MyThreadPrinter2のPC =新しいMyThreadPrinter2( "C"、B、C)。


新しいスレッド(PA).start();
新しいスレッド(PB).start();
新しいスレッド(PC).start(); }
}

おすすめ

転載: www.cnblogs.com/hyhy904/p/11369953.html