デッドロック
セキュリティの問題を解決するためのJavaスレッドの同期メカニズムが、また、デッドロックにつながりました
デッドロックの現象の根本原因
1.2つ以上のスレッドが存在する。
2.2つまたは複数の共有リソースが存在します。
デッドロックの問題への解決策
いいえプログラムは、唯一それを回避しようとしません。
例:
パッケージjd1908_corejava.ch17。 パブリック クラスデッドロック{ // 锁 パブリック 静的オブジェクトA = 新しいオブジェクト(); // 锁B のパブリック 静的オブジェクトB = 新しいオブジェクト(); パブリック 静的 ボイドメイン(文字列[]引数){ T1をT1 = 新しいT1()。 T2はT2 = 新しいT2()。 t1.start(); t2.start(); } } クラス T1は延びスレッド{ @Overrideを 公共 ボイドラン(){ 同期(DeadLock.A){ System.out.printlnは( "A" ); 同期(DeadLock.B){ するSystem.out.println( "核心代码T1" )。 } } } } クラス T2が延びスレッド{ @Override 公共 ボイドラン(){ 同期(DeadLock.B){ System.out.printlnは( "\ TBを" )。 同期(DeadLock.A){ System.out.printlnは("コアコードT2" ); } } } }
結果:
B