玖叶教程网

前端编程开发入门

BlockingQueue阻塞队列

package unit5;


import java.util.concurrent.ArrayBlockingQueue;

import java.util.concurrent.TimeUnit;


public class Java51 {

public static void main(String[] args) throws InterruptedException {


// BlockingQueue阻塞队列


// // 第1组:抛出异常:add/remove

// ArrayBlockingQueue blockingQueue = new ArrayBlockingQueue(3);// 队列大小

// System.out.println(blockingQueue.add("a"));

// System.out.println(blockingQueue.add("b"));

// System.out.println(blockingQueue.add("c"));

// // System.out.println(blockingQueue.add("d")); // java.lang.IllegalStateException

// System.out.println(blockingQueue.remove());

// System.out.println(blockingQueue.remove());

// System.out.println(blockingQueue.remove());

// // System.out.println(blockingQueue.remove()); // java.util.NoSuchElementException



// // 第2组:有返回值没有异常:offer/poll

// ArrayBlockingQueue blockingQueue = new ArrayBlockingQueue(3);// 队列大小

// System.out.println(blockingQueue.offer("a"));

// System.out.println(blockingQueue.offer("b"));

// System.out.println(blockingQueue.offer("c"));

// // System.out.println(blockingQueue.offer("d")); // false

//

// System.out.println(blockingQueue.poll());

// System.out.println(blockingQueue.poll());

// System.out.println(blockingQueue.poll());

// // System.out.println(blockingQueue.poll()); // null



// // 第3组:等待阻塞一直阻塞:put/take

// ArrayBlockingQueue blockingQueue = new ArrayBlockingQueue(3);

// blockingQueue.put("a");

// blockingQueue.put("b");

// blockingQueue.put("c");

// // blockingQueue.put("d"); // 队列位置没有了、一直阻塞

// System.out.println(blockingQueue.take());

// System.out.println(blockingQueue.take());

// System.out.println(blockingQueue.take());

// // System.out.println(blockingQueue.take()); // 没有这个元素、一直阻塞



// 第4组:等待阻塞等待超时:offer/poll

ArrayBlockingQueue blockingQueue = new ArrayBlockingQueue(3);// 队列大小

System.out.println(blockingQueue.offer("a"));

System.out.println(blockingQueue.offer("b"));

System.out.println(blockingQueue.offer("c"));

// System.out.println(blockingQueue.offer("d", 3, TimeUnit.SECONDS)); // 等待超过3秒就退出


System.out.println(blockingQueue.poll());

System.out.println(blockingQueue.poll());

System.out.println(blockingQueue.poll());

// System.out.println(blockingQueue.poll(3, TimeUnit.SECONDS)); // 等待超过3秒就退出


}

}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言