スレッドの安全性、同期ロック(同期方法及び同期コード)

1.セキュリティスレッド(同期をスレッドがロック):2つの方法で処理スレッド:1つのシンクブロック同期ロック2.
2.シンクブロック:プログラムのスレッドで複数のスレッドを設定する:ロックオブジェクトは、任意のオブジェクトであってもよいですスレッドの安全ロックを保証するために
同期化方法3:これは、このクラスの意味を表すので、このオブジェクトは、ロックすることができ、オブジェクトの種類である。
4.同期ロックを設定:同期コードブロック:パブリッククラスティックは(Runnableをを実装) {グラブ投票コンパイルされたプログラム:;各スレッドは100票を有し、プライベートINTティック//スレッドオブジェクト共有変数は、各スレッドのような変数となっていたクラス別段の定義方法で定義されます100枚のチケットの合計OBJ =新しいオブジェクトをオブジェクトではない();他に定義され、スレッドロックオブジェクトクラスは、各スレッドがスレッドのロックのオブジェクトロックできない持って配置する必要があり
ます。public voidランを(){(つつ真) プラス同期は、(同期(OBJ){{場合 (ダニ> 0){ 加えて、より効果的な睡眠(睡眠100ミリ秒):.のThread.sleepを行う(100)のSystem.out.println (にThread.currentThread()のgetName( )+ +チケット「の販売」 - +「チケット」)}}}
の同期方法:パブリッククラスティックは、Rを実装 unnable(){int型プライベートティック= 100;一方、(真の){保存();}}
公共ボイド保存(同期){(ダニ> 0){System.out.printlnは(にThread.currentThread()のgetName()IF +チケット+ "の販売" - + "チケット");}} \
これはRunnableを実装クラス同期ロック方式で書き込みをして、回線のコールのロック同期方法
6.Lockマルチスレッドロック:プライベートint型のダニ= 0;ロック、ロックを作成:ロックリットル=新しいReentrantLockの() ; サイクリングチケット:しばらく(真を){l.lock();(IF > 0){System.out.printlnは(Thtread.currentThread(ダニ) ".getName()+をダニ+販売の" - + "チケット"閉ロック}リソース:L .unclock}

おすすめ

転載: www.cnblogs.com/hankai2735/p/11481880.html