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

java的ArrayBlockingQueue使用,arrayblockingqueue,import java.

来源: javaer 分享于  点击 48381 次 点评:224

java的ArrayBlockingQueue使用,arrayblockingqueue,import java.


import java.util.Date;import java.util.concurrent.ArrayBlockingQueue;public class ArrayBlockingQueueTest {    private static ArrayBlockingQueue<Job> queue;  public static void main(String[] args) {      boolean isFIFO=true;      int capacity=2;      queue=new ArrayBlockingQueue<Job>(capacity,isFIFO);      Provider provider=new Provider();      provider.start();      Consumer consumer=new Consumer();      consumer.start();  }  public static class Job {      public String id;      public boolean isLast=false;      public Job(String id) {          this.id=id;      }  }  public static class Provider extends Thread {      @Override      public void run() {          try {          for(int i=0; i<10; i++) {              Job job=new Job(i+"");              System.out.println("send job "+job.id+" at: "+new Date());                            queue.put(job);          }          Job lastJob=new Job("Last Job");          lastJob.isLast=true;          queue.put(lastJob);          } catch (InterruptedException e) {              System.out.println("Provider thread "+this.getId()+" interrupted");              return;          }      }  }  public static class Consumer extends Thread {      @Override      public void run() {          while(true) {              Job job;              try {                  Thread.sleep(1000);                  job=queue.take();                  System.out.println("Got the job: "+job.id);                  if (job.isLast) {                      return;                  }              } catch (InterruptedException e) {                  System.out.println("Consumer thread "+this.getId()+" interrupted");                  return;              }          }      }  }}
相关栏目:

用户点评