我拆过的坑cycx

查询一下!

介绍BlockingQueue常用的四组api以及他们之间的不同之处。

BlockingQueue是FIFO(先进先出)型队列,他很好的解决了多线程中,如何高效安全“传输”数据的问题。本文会介绍BlockingQueue常用的四组api以及他们之间的不同之处。


方式返回布尔,抛出异常返回布尔,不抛出异常阻塞,一直等待阻塞,超时等待

 

方式返回布尔,抛出异常返回布尔,不抛出异常阻塞,一直等待阻塞,超时等待

blockingqueue.png

添加add(e)offer(e)put(e)offer(e, timeout, unit)

移出remove( )poll( )take( )poll(timeout, unit)

返回队首元素element( )peek( )

————————————————

返回布尔,抛出异常:

// 容量大小为3

ArrayBlockingQueue<String> blockingQueue = new ArrayBlockingQueue<String>(3);

// add() 向队列添加元素,返回布尔值

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

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

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

// 超过容量,抛异常 IllegalStateException: Queue full

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

// 返回队首元素

System.out.println("top = " + blockingQueue.element());


System.out.println("-------------");

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

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

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

// 无元素,抛异常 NoSuchElementException

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

// 返回队首元素,抛异常 NoSuchElementException

//System.out.println("top = " + blockingQueue.element());

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.