java - 如何自定义 BlockingQueue 的阻塞行为

标签 java queue

我想创建一个阻塞队列,它根据自定义规则而不是队列中的项目数来阻塞生产者。

例如:

生产者生产一些文件并放入队列中。消费者经过一些分析后将它们转移到特定位置。

对于上述场景,我希望生产者在队列中的总文件大小达到某个阈值时等待生成新文件。如果总大小不超过阈值,队列可以接受任意数量的文件。

最佳答案

我可能会将 BlockingQueue 子类化,例如 ArrayBlockingQueue并添加一个简单的 CountDownLatch,它被初始化为阈值并在达到 0 时启用各种take/remove 方法。

关于java - 如何自定义 BlockingQueue 的阻塞行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8256324/

相关文章:

java - App Engine Java - 当所有任务完成其流程时执行最终事件

java - 在 JPA 中使用相同的实体键映射多个 HashMap

java - 如何使用 yuicompressor-maven-plugin 让 maven 使用缩小文件构建 war

java - 在我的 Flex 应用程序中获取数据的最佳方式是什么?

javascript - 如何在 Javascript 循环中对事件进行排队

添加到队列时在 C 和 Malloc 中创建队列

java - spark中的spark调度模式和应用队列有什么区别?

java - 队列只有最后一条消息

java - 获取带有动态构造函数参数的 bean

c# - 实现接口(interface)正确的术语