【发布时间】:2009-02-06 16:00:44
【问题描述】:
我有两个线程。生产者正在生产数据片段(字符串对象),消费者在其中处理这些字符串。问题是我的应用程序只需要处理最新的数据对象。换句话说,如果生产者设法产生两个字符串“s1”,然后是“s2”,那么我希望消费者只处理“s2”。 “s1”可以安全地丢弃。
当然,实现实现这种行为的类没有问题,但我想使用 java.util.concurrent 中的标准机制(如果存在这样的机制)。请注意,SynchronousQueue 不是一个好的解决方案:消费者在排队“s1”时会阻塞,并且没有机会产生“s2”。
(总之,我在找一个带有阻塞删除操作和非阻塞集合操作的单元素集合)
有什么想法吗?
【问题讨论】:
标签: java multithreading