![](https://csdnimg.cn/release/download_crawler_static/86369698/bg5.jpg)
工作缓存器
Java 代码
1. public class RequestQueue {
2. //采用 LinkedList 保存客户请求
3. private final LinkedList queue = new LinkedList();
4. //服务器获取请求
5. //保证同时只一个服务器执行这个方法
6. public synchronized Request getRequest() {
7. //当客户请求队列为空时等待
8. while (queue.size() <= 0) {
9. try {
10. wait();//等到客户添加请求
11. } catch (InterruptedException e) {
12. }
13. }
14. return (Request)queue.removeFirst();
15. }
16.
17. //客户添加请求
18. //保证同时只一个客户执行这个方法
19. public synchronized void putRequest(Request request) {
20. queue.addLast(request);
21. notifyAll();//唤醒 wait()方法,执行程序
22. }
23.}
工作缓存器 jdk1.5 新特性实现
Java 代码
1. public class RequestQueue {
2. private final LinkedList queue = new LinkedList();
3.
4. private Lock lock = new ReentrantLock();
5.
6. private Condition serverCondition = lock.newCondition();
7.
8. private Condition clientCondition = lock.newCondition();
9.
10. public Request getRequest() {