同じトラック上のカメとウサギが行くと高速である誰が見て1 100から始まるましょう。
1 パブリック クラスレーサーは、実装のRunnable { 2 プライベート 静的文字列の勝者と、// 胜利者 3 4 @Override 5 公共 ボイドラン(){ 6 // 赛道 7 用(INTのステップ= 1;ステップ<= 100;ステップ++ ){ 8 / * 。IF(にThread.currentThread()のgetName() .equals( "兔子")&&ステップ%50 == 0){ 9 試み{ 10 のThread.sleep(200)。 11 }キャッチ(InterruptedExceptionある電子){ 12 e.printStackTrace(); 13 } 14 } * / 15 のSystem.out.println(にThread.currentThread()のgetName()+ "---->走了" +ステップ+ "步"。 )。 16 17 ブーリアンフラグ= ゲームオーバー(ステップ)。 18 であれば(フラグ){ 19 ブレーク。 20 } 21 22 } 23 } 24 25 プライベート ブールゲームオーバー(INTのステップ){ 26 であれば(勝者!= NULL ){ 27 リターン 真; 28 } 他{ 29 であれば(ステップ== 100 ){ 30 勝者= にThread.currentThread()のgetName()。 31 のSystem.out.println( "胜利者是- >" + 勝者)。 32 } 33 } 34 リターン 偽。 35 } 36 37 公共 静的 ボイドメイン(文字列[]引数){ 38 レーサーレーサー= 新しいレーサー()。 39 新しいスレッド(レーサー、 "兔子" ).start(); 40 新スレッド(レーサー、 "亀" ).start(); 41は 42である } 43である 44れます }
結果:
ウサギ----> 1つのステップに行きます
...................
ウサギ----> 98個のステップに行く
ウサギを----> 99のステップの行く
ウサギを----> 100歩の距離
勝者は- >うさぎ
それはどのようにウサギが勝ったことが判明したが、我々は彼がウサギのために眠るスリープ状態にスレッドを追加する場合、現実亀の亀の勝利に、そして、亀が勝つことができます。
1 パブリック クラスレーサーは、実装のRunnable { 2 プライベート 静的文字列の勝者と、// 胜利者 3 4 @Override 5 公共 ボイドラン(){ 6 // 赛道 7 用(INTのステップ= 1ステップ++;ステップ<= 100 ){ 8 もし。(にThread.currentThread()のgetName()に等しいです。 ( "兔子")&&ステップ%50 == 0 ){ 9 試み{ 10 のThread.sleep(200 )。 11 } キャッチ(InterruptedExceptionある電子){ 12 e.printStackTrace(); 13 } 14 } 15 のSystem.out.println(にThread.currentThread()のgetName()+ "---->走了" +ステップ+ "步"。 )。 16 17 ブーリアンフラグ= ゲームオーバー(ステップ)。 18 であれば(フラグ){ 19 ブレーク。 20 } 21 22 } 23 } 24 25 プライベート ブールゲームオーバー(INTのステップ){ 26 であれば(勝者!= NULL ){ 27 リターン 真; 28 } 他{ 29 であれば(ステップ== 100 ){ 30 勝者= にThread.currentThread()のgetName()。 31 のSystem.out.println( "胜利者是- >" + 勝者)。 32 } 33 } 34 リターン 偽。 35 } 36 37 公共 静的 ボイドメイン(文字列[]引数){ 38 レーサーレーサー= 新しいレーサー()。 39 新しいスレッド(レーサー、 "兔子" ).start(); 40 新スレッド(レーサー、 "亀" ).start(); 41は 42である } 43である 44れます }
結果:
カメ----> 96のステップダウン
カメ----> 97のステップダウン
カメ----> 98のステップダウン
カメ----> 99のステップダウン
離れカメ----> 100のステップ
勝者は- >カメの
ウサギ----> 50個の手順を行きます
これは関係なく、実行亀が勝ったかの場合ではありません。