ジャワ・ファウンデーション・クラスは、多くのスレッドをスタック

使用Stackクラスは、生産者と消費者を実装します

 

1つの パッケージcom.imooc.demo。
2  
3  輸入java.util.Randomの。
4  インポートjava.util.Stackを。
5 //生产者
 6  パブリック クラス StackOOPS 実装のRunnable {
 7  
8      プライベートスタック<整数> スタック。
9      公衆 StackOOPS(スタック<整数> スタック){
 10          この .STACK = スタック。
11      }
 12  
13      @Override
 14      公共 ボイドラン(){
 15          ランダムランダム=新しいランダム();
16          一方){
 17              であれば(stack.size()<6 ){
 18                  INT NUM = にRandom.nextInt()。
19                  stack.push(NUM)。
20                  のSystem.out.println(にThread.currentThread()のgetName()+ "生产了:" +。NUM)。
21              } {
 22                  のtry {
 23                      のThread.sleep(100 )。
24                  } キャッチ(InterruptedExceptionある電子){
 25                      e.printStackTrace();
26                 }
 27              }
 28          }
 29      }
 30 }
1つの パッケージcom.imooc.demo。
2  
3  インポートjava.util.Stackを。
4 //消费者
 5  パブリック クラス StackOOPCは実装のRunnable {
 6  
7      プライベートスタック<整数> スタック。
8  
9      公共 StackOOPC(スタック<整数> スタック){
 10          この .STACK = スタック。
11      }
 12      @Override
 13      公共 ボイドラン(){
 14          ながら){
 15              もし(stack.size()> 0 ){
 16                  整数NUM = stack.pop()。
17                  のSystem.out.println(にThread.currentThread()のgetName()+ "消费了:" +。NUM)。
18              } {
 19                  のtry {
 20                      のThread.sleep(200 )。
21                  } キャッチ(InterruptedExceptionある電子){
 22                      e.printStackTrace();
23                  }
 24              }
 25          }
 26      }
 27 }
1  パッケージcom.imooc.demo;
 2  
。3  インポートjava.util.Stackを、
 4  
。5  / ** 
6  *クラスのスタックを用いる
 。7   * / 
8  パブリック クラスStackTest {
 9      パブリック 静的 ボイドメイン(文字列[]引数){
 10          スタック<整数> = S 新しい新しいスタック<> ();
 11          StackOOPSのstackOOPS = 新しい新しいStackOOPS(S)、
 12は          stackOOPC stackOOPC = 新しい新しいstackOOPC(S)、
 13は         // 開放2つのプロデューサ
14          の新しい新スレッド(stackOOPC).start();
 15          新しい新しいスレッド(stackOOPS).start();
 16          // 消費者を開き
17。         新しい新しいスレッド(stackOOPS).start();
 18れる     }
 19 }

 

おすすめ

転載: www.cnblogs.com/in-the-game-of-thrones/p/11322906.html