我有一个阻塞队列,其中有多个编写器正在编写。我想把一个事务控制机制放在不超过50个写入器(或接近)每秒写入的位置。有没有办法实现呢?
编辑1:使用SocketChannel写入方法有类似的要求。那就是允许n个写入者每秒写入。 n的值不同。我不用担心。
另一个编辑:我正在考虑使用我将发布的Cyclic Barrier&每秒重置一次。我正朝着正确的方向前进吗?
答案 0 :(得分:0)
我不认为50位作家的信号量就足够了。
你可以做的,例如有一张票证池和一个发行它们的机制。池的大小允许您规定最大编写者数量,并且发布它们的机制将允许您控制流程。
基本上,流程将是这样的:
答案 1 :(得分:0)
最后我混合了两个解决方案以达到我想要的效果。我使用有界信号量来限制任何时间点的编写器以及定时循环屏障,这有助于我定义总写入/秒。