实现生产者消费者时,使用了ArrayBlockingQueue作为共享缓存区,并指定大小。
生产者调用ArrayBlockingQueue.put(o)放入元素,消费者调用ArrayBlockingQueue.take()获取元素。问题是:当消费者因为某个异常原因导致退出了,而生产者仍然在不停的put元素,当缓冲区满了,生产者一直等待。
怎么解决呢?或者说生产者怎么才能知道消费者挂了呢?
生产者调用ArrayBlockingQueue.put(o)放入元素,消费者调用ArrayBlockingQueue.take()获取元素。问题是:当消费者因为某个异常原因导致退出了,而生产者仍然在不停的put元素,当缓冲区满了,生产者一直等待。
怎么解决呢?或者说生产者怎么才能知道消费者挂了呢?
解决方案 »
- 让一个java se程序固定在桌面上,就跟一个标签似的,要怎么做?
- 关于TreeCellRenderer的问题
- 100分求java的API文档(中文版支持模糊查找的)
- 插U盘重启问题!~!急啊....在线等....
- 各位朋友介绍几本Java比较经典的电子书籍看看...
- java beans sql 查询 (设计思想与功能,哪个更重要!)
- 百分大放送,急用!!!!!
- 微软的jdk开发包下载,地址是什么?我搜了没搜到,谢谢
- 怎么得到二个数组的并集和交集?
- 现在学java还有没有必要?
- 整理各类IT编程视频教程下载地址(免费分享)
- 新手求助~debug 2个小时了 我觉得是io的方面的错误~ 客户端接受不到已经更新的数据
如果不空闲呢?还是要等待。