欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java.util.BlockingDeque 类的使用示例,,import java.

来源: javaer 分享于  点击 27633 次 点评:198

java.util.BlockingDeque 类的使用示例,,import java.


import java.util.concurrent.BlockingDeque;import java.util.concurrent.LinkedBlockingDeque;class Producer implements Runnable {  private String name;  private BlockingDeque<Integer> deque;  public Producer(String name, BlockingDeque<Integer> deque) {    this.name = name;    this.deque = deque;  }  public synchronized void run() {    for (int i = 0; i < 10; i++) {      try {        deque.putFirst(i);        System.out.println(name + \" puts \" + i);        Thread.sleep(300);      } catch (InterruptedException e) {        e.printStackTrace();      }    }  }}class Consumer implements Runnable {  private String name;  private BlockingDeque<Integer> deque;  public Consumer(String name, BlockingDeque<Integer> deque) {    this.name = name;    this.deque = deque;  }  public synchronized void run() {    for (int i = 0; i < 10; i++) {      try {        int j = deque.takeLast();        System.out.println(name + \" takes \" + j);        Thread.sleep(3000);      } catch (InterruptedException e) {        e.printStackTrace();      }    }  }}public class BlockingDequeTester {  public static void main(String[] args) {    BlockingDeque<Integer> deque = new LinkedBlockingDeque<Integer>(5);    Runnable producer = new Producer(\"Producer\", deque);    Runnable consumer = new Consumer(\"Consumer\", deque);    new Thread(producer).start();    try {      Thread.sleep(500);    } catch (InterruptedException e) {      e.printStackTrace();    }    new Thread(consumer).start();  }}//该片段来自于http://byrx.net
相关栏目:

用户点评