デッドロックのためのマルチスレッドコード

パッケージテスト。

輸入java.awt.List; 
輸入java.awt.image.AreaAveragingScaleFilter。
輸入java.lang.reflect.Array。
インポートのjava.math.BigDecimal; 
インポートがjava.math.BigInteger; 
輸入java.utilの。*; 
輸入java.io.BufferedInputStreamの。
輸入java.io.OutputStreamWriterが、
輸入てjava.io.PrintWriter; 
インポートするjava.io.Reader; 
インポートのjava.io.Writer; 
輸入javax.security.auth.callback.LanguageCallback; 
輸入javax.swing.text.StyledEditorKit.BoldAction。

クラスロック{ 
	パブリック静的最終オブジェクトalock =新しいオブジェクト(); 
	パブリック静的最終対象ブロック=新しいオブジェクト(); 
} 

クラスZhuzhuはRunnableを実装{ 
	パブリック列C、
	プライベートブールフラグ。
	プライベートint型NUM = 100; 

	公共Zhuzhu(ブーリアンフラグ){ 
		this.flag =フラグ。
	} 

	
	オブジェクトのオブジェクト=新しいオブジェクト(); 

	ます。public void実行(){ 
		場合(フラグ==真){ 
			(真)しばらく
			同期(Lock.alock){ 
				System.out.printlnは( "alock ...もし"); 
				同期(Lock.block){ 
					するSystem.out.println( "IF ....ブロック")。
				} 
			} 
		} 
		そうでなければ{ 
			(真)一方、
			同期(Lock.block){ 
				するSystem.out.println( "他...ブロック")。
				(Lock.alock){同期
					するSystem.out.println( "他.... alock")。
				}
			} 
		} 
	} 

}

 
publicクラスメイン{ 

	公共の静的な無効メイン(文字列[]引数)は例外{スロー

		スキャナスキャナ=新しいスキャナ(新しいにBufferedInputStream(System.in))を、
		PrintWriterのうち=新しいPrintWriter(新しいのOutputStreamWriter(のSystem.out)); 

		ZhuzhuのC =新しいZhuzhu(真の); 
		Zhuzhu D =新しいZhuzhu(偽); 
		スレッドT1 =新しいスレッド(C); 
		スレッドT2 =新しいスレッド(D)。

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

  

おすすめ

転載: www.cnblogs.com/WINDZLY/p/11788619.html