Java多线程编程:进阶技术与实践
1. BlockingQueue的使用
在J2SE 5.0中, java.util.concurrent 包下的并发库是一个很有前景的API补充。它提供了实用类,帮助解决多线程相关的许多问题。虽然推荐使用这个库,但还是需要学习线程背后的基础知识和概念。
由于队列在多线程应用中非常有用,并发库定义了 BlockingQueue 接口,以及五个实现该接口的专用队列类。阻塞队列实现了 java.util.Queue 接口,为集合定义了队列语义,并为队列添加了与并发相关的功能。例如,在检索下一个元素时等待元素存在,在存储元素时等待空间存在。
可以对 Server 类进行重构,使用 LinkedBlockingQueue 代替 LinkedList ,示例代码如下:
package sis.search;
import java.util.concurrent.*;
public class Server extends Thread {
private BlockingQueue<Search> queue =
new LinkedBlockingQueue<Search>();
private ResultsListener listener;
public Server(ResultsListener listener) {
th
Java多线程进阶技术解析
超级会员免费看
订阅专栏 解锁全文
659

被折叠的 条评论
为什么被折叠?



