Java 队列上的双向通知

Java 队列上的双向通知,java,queue,Java,Queue,我有一个典型的生产者-消费者问题,唯一的区别是消费者不必处理生产者生产的每一个单元。生产商使用固定数量的数据进行测试,然后消费者应获取数据。此外,生产商应等待消费者读取批次 我正在为此使用TransferQueue,但现在我希望在固定时间后,即使数据很小,我也应该读取数据 通常,我需要队列的双向通知,如何实现这一点?处理了一个类似的问题,我需要确定来自生产者的数据结束,以提交一个批并开始下一个批。我使用instanceof来确定对象的结束 基本上,创建EndOfData类并将此对象作为最后一个条

我有一个典型的生产者-消费者问题,唯一的区别是消费者不必处理生产者生产的每一个单元。生产商使用固定数量的数据进行测试,然后消费者应获取数据。此外,生产商应等待消费者读取批次

我正在为此使用TransferQueue,但现在我希望在固定时间后,即使数据很小,我也应该读取数据


通常,我需要队列的双向通知,如何实现这一点?

处理了一个类似的问题,我需要确定来自生产者的数据结束,以提交一个批并开始下一个批。我使用instanceof来确定对象的结束

基本上,创建EndOfData类并将此对象作为最后一个条目发送到队列中。使用者检查接收的对象是数据类的instanceOf还是EndOfData


引入了额外的if检查,但对我来说效果很好。希望有帮助。

我建议使用两个线程

其思想是,生产者将把新数据放入您的队列中,直到达到所需的条目数为止。然后它等待通知。
另一方面,使用者也将等待,直到队列中有正确数量的数据,或者直到达到定义的超时waitint timeToWait。然后它将处理数据并通知制作人处理。

实际上,我正在这些行上做一些事情,这里只是一段代码。线程1:同步的未处理数据{如果达到阈值{unprocessedData.notify;unprocessedData.wait;}否则unprocessedData.adddata;}线程2:同步的未处理数据{unprocessedData.wait10*60*60;//做点什么unprocessedData.notifyAll;}我希望有更精致的东西。