パッケージテスト。 輸入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(); } }