我有一个中心信息源(在架构上),并且需要某种方式将数据包发送到每个线程,这将执行一个快速的操作,然后等待一个新的数据包。
我正在权衡分布式系统的优缺点,而不是分层系统。
我可以为每个线程提供自己的BlockingQueue,但接下来我必须:
a)每个类都设置一个阻塞队列,然后确保它是从中心数据包源(我可以用一种方法自动完成这样的事情)填充的。
或者,中心队列方法可能类似于:
阻塞队列的子类,其采取方法:
释放了~7个线程//闩锁的倒计时锁存静态变量的
var结果= topOfQueue //等待,立即等待8个线程的循环屏障(7 +1线程移除最顶部的队列元素,然后加入屏障)
循环屏障)。返回结果;
考虑到我与每个线程共享数据包的目标,这是一个很好的架构吗?或者,是否有一个更有效的架构,而我所缺少的(或者一个已经存在的类呢?)
哪一个会更好?
发布于 2022-02-02 17:22:39
我会从一些简单的事情开始,比如遗嘱执行人。它管理一堆通过共享队列接收工作的线程。
此外,我将设置一套(微观)基准,以确定您的设计选择。
编辑还是需要每个线程处理数据包?在这种情况下,您可以创建一组单线程执行程序,并将数据包复制到每个执行器。
这些只是一些关于如何去做的建议。我不知道这在你的设计中是一个正确的解决方案。
https://stackoverflow.com/questions/70959807
复制相似问题