当前位置 : 主页 > 编程语言 > java >

笔记 第14章 多线程(8)阻塞队列的使用与拷贝集合

来源:互联网 收集:自由互联 发布时间:2022-07-13
14.6 阻塞队列 可考虑使用队列来处理线程问题,比如银行问题可用一个队列来插入进行转账,这样银行问题就无需考虑同步。 常用方法: 阻塞方法: put 队尾添加元素(注意!满阻塞)


 14.6 阻塞队列

可考虑使用队列来处理线程问题,比如银行问题可用一个队列来插入进行转账,这样银行问题就无需考虑同步。

常用方法:

阻塞方法:

put 队尾添加元素(注意!满阻塞)

take 队头移出元素(注意!空阻塞)

非阻塞无异常方法:

offer 添加返回是否成功,队未满true,队满false

peek 返回队头元素(不移除),空返回null

poll 队头移出元素,空返回null

空移除满添加抛异常:

add 添加到队尾,队满抛异常

elment 返回队头元素(不移除),空抛异常

remove 队头移出元素,空抛异常

阻塞队列的常见类:

LinkedBlockingDeque: 没有上边界,是双端队列

ArrayBlockingQueue: 需要指定容量,可以选是否公平(公平性能更低,长时间等待的线程会先处理)

PriorityBlockingQueue: 待优先级的队列,按照优先级顺序移除(可以学CPU多级反馈,处理次数多的优先级变低)

书作者给的示例:

网友评论