场景如下:一个线程往队列写写数据,另一个线程从队列取数据。
如何用Java实现以下功能:
1.队列达到一定数目的时候,通知取数据的线程从队列中取数据。
2.取数据队列,取数据的线程定时去从队列中取数据。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何用Java实现以下功能:
1.队列达到一定数目的时候,通知取数据的线程从队列中取数据。
2.取数据队列,取数据的线程定时去从队列中取数据。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
线程定时可以采用Thread.sleep()实现。
达到一定数量后,线程退出休眠,继续取数据,可以用Thread.intterupt()实现。
在
java.util.concurrent
包下,有一个基于数组实现的阻塞队列:ArrayBlockingQueue
。构造
ArrayBlockingQueue
时,可以指定队列的最大容量,像这样:BlockingQueue
的offer
方法,在当前队列容量已经满(达到构造时设定的容量)的话就会返回false
,此时便可以 “通知取数据的线程从队列中取数据”。