Javaのアドレスセキュリティスレッドスリーへの道:ロックロック



java.util.concurrent.locks.ReentrantLockインポート;

/ **
アドレスセキュリティスレッドスリーへのモード*:ロックロック--- JDK5.0新しい
*
* 1顔の質問は:類似点と相違点の同期とロック?
* SAME:両方は、スレッドの安全性の問題を解決することができ
、異なる*:対応する同期コードの実装が完了した後に同期機構は、自動的に同期の解除を監視
*ロック手動に必要端は、手動同期に必要ながら、同期(ロック())開始実装(UNLOCK())
*
* 2.優先順位:
*ロックシンクブロック(対応するリソースを割り当てる方法の身体に入っている)同期方法(体外法)
*
*
*面の質問:方法アドレスセキュリティスレッド?いくつかの方法があります
* /
クラスにウィンドウを実装したRunnable {

プライベートint型のチケット= 100;
... ReentrantLockのの1つの//インスタンス化
ReentrantLockの新しい新=のReentrantLockの()のプライベート・ロック;

@Override
ます。public void RUN(){
ながら、(真の){
試み{

// 2ロックメソッド呼び出しロック()
Lock.lock();

IF(チケット> 0){

試み{
のThread.sleep(100);
}キャッチ(InterruptedExceptionあるE){
e.printStackTrace();
}

のSystem.out。 println(にThread.currentThread()のgetName() + ": チケットは、チケット番号は:です。"チケット+);
ticket--;
}他{
BREAK;
}
}最後に{
//ロック解除メソッド呼び出し3:UNLOCK()。
ロック.unlock();
}

}
}
}

パブリッククラスLockTest {
パブリック静的無効メイン(文字列[] args){
W =新しいウィンドウ(ウィンドウ)。

スレッドT1は、新しいスレッドを(W)=。
スレッドT2は、新しいスレッドを(W)=。
スレッドT3は、新しいスレッドを(W)=。

t1.setName( "窗口1")。
t2.setName( "窗口2")。
t3.setName( "窗口3")。

t1.start();
t2.start();
t3.start();
}
}

おすすめ

転載: www.cnblogs.com/wpy188/p/12099892.html