场景如下:一个线程往队列写写数据,另一个线程从队列取数据。

发布于 2022-09-04 12:51:17 字数 104 浏览 17 评论 0

如何用Java实现以下功能:

1.队列达到一定数目的时候,通知取数据的线程从队列中取数据。
2.取数据队列,取数据的线程定时去从队列中取数据。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你げ笑在眉眼 2022-09-11 12:51:17

线程定时可以采用Thread.sleep()实现。
达到一定数量后,线程退出休眠,继续取数据,可以用Thread.intterupt()实现。

枫林﹌晚霞¤ 2022-09-11 12:51:17

java.util.concurrent 包下,有一个基于数组实现的阻塞队列:ArrayBlockingQueue
构造 ArrayBlockingQueue 时,可以指定队列的最大容量,像这样:

BlockingQueue<T> queue = new ArrayBlockingQueue<>(10);

BlockingQueueoffer 方法,在当前队列容量已经满(达到构造时设定的容量)的话就会返回 false,此时便可以 “通知取数据的线程从队列中取数据”。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文