Java中的阻塞队列
阻塞队列的基本概念
1、生产者、消费者的概念
他俩是设计模式的一种,提出这两种概念,通过一个容器的方式能解决强耦合问题
生产者、消费者之间不会直接通讯。通过一个第三方容器、队列的方式进行通讯
生产者生产完数据放入容器之后,不用等待消费者来处理
消费者直接从容器中获取数据、不用去直接联系消费者、容器化技术最常用的就是队列
JUC阻塞队列的存取方法分析
-
常用的存取方法都是来自于JUC包下的BlockQueue
-
生产者存储的方法分析
-
add(E)
-
offer(E)
-
boolean offer(E e, long timeout, TimeUnit unit)
-
put(E e) 、添加数据到队列中,队列满了则会挂起线程,等到队列中有位置再添加数据,会一直等待
-
消费者获取数据的方法、下面这些方法涉及到方法的重载
remove()、从队列中移除元素、元素为空抛出异常
-
poll()
-
poll(timeout,unit)
-
E poll(long timeout, TimeUnit unit)队列中移除元素,队列为空,挂起线程timeout时间。等生产者丢数据再获取。
-
take()