单线程循环收,多线程循环发送。单线程收到的数据,多线程每个均转发有且仅一次。有什么好的方案么
1,单线程收到数据之后,push到每个多线程的待分发队列。多线程每次维护自己的发送。
2,单线程维护一个待发送队列,等待多线程自己来取,这个方案略复杂,需要过滤已经发送的和维护很大难以clear的发送队列。
加锁是push的时候加还是在多线程取的时候好一些
此处发现个问题,当采用foreach 的push方法压入堆队列的时候,存在同步问题,既第一个队列可能没有延迟,第二三个可能越来越大
@蕾蕾啦啦啦:
用线程安全的集合类,不用考虑加锁问题。
此处应该用队列。出入队列性能消耗比较小,瓶颈应该不会在这里
可否描述的详细一点,看的不太明白,不明白你的目的是什么
这是在说你需要消息队列么?
对的,借鉴2L做法可以,不过这里需要建立多个消息队列了可能。