企业网站建设该怎么描述,网站定制开发是什么意思,做行业网站广告能赚多少钱,工业设计考研阻塞队列 使用背景作用从阻塞队列中获取元素常用的三个方法往阻塞队列中存放元素的三种方式 使用背景
想要在多个线程之间传递数据#xff0c;用一般的对象是不行的#xff0c;比如我们常用的ArrayList和HashMap都不适合由多个线程同时操作#xff0c;可能会造成数据丢失或… 阻塞队列 使用背景作用从阻塞队列中获取元素常用的三个方法往阻塞队列中存放元素的三种方式 使用背景
想要在多个线程之间传递数据用一般的对象是不行的比如我们常用的ArrayList和HashMap都不适合由多个线程同时操作可能会造成数据丢失或者数据重复。
这是因为多个线程在执行的时候执行的顺序是随机的。我们无法预判线程执行的先后顺序。可以说这完全取决于CPU。
作用
使用BlockingQueue则可以在多个线程之间安全地传递数据。一般的队列是没有控制线程状态的功能的为了体现这种队列的强大让人一眼望去就知道它能让当前线程阻塞于是人们给它加了一个Blocking前缀。
从阻塞队列中获取元素常用的三个方法
take() 死等poll(long, TimeUnit) 等一段时间poll 不等
往阻塞队列中存放元素的三种方式
put() 一直等offer(E, long, TimeUnit) 等一段时间offer(E) 不等
参考资料【Java并发·10】阻塞队列 基础