Java中的阻塞队列

98 阅读1分钟

阻塞队列的基本概念

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() 在这里插入图片描述