【发布时间】:2020-01-27 07:29:50
【问题描述】:
一般来说,实时生产者线程需要一个环形缓冲区才能获得良好的性能。
但就我而言,我有一些延迟限制,所以我很想摆脱 Producer 的环形缓冲区,并在个别数据缓冲区出现时将它们推出。然后,我只会在消费者(较慢)端进行环形缓冲区。而且我很想避免通过关键部分进行线程锁定。
由于 ZMQ 不需要线程锁定,我想知道是否可以为此使用 inproc PubSub 模式。知道网络 I/O 在实时线程中不受欢迎,我仍然很好奇 inproc 协议是否可以产生任何影响,即更好的性能。
所以问题是:我能否使用带有inproc 协议的 ZMQ PubSub 在实时线程中实现低延迟的无锁/无阻塞数据传输?
【问题讨论】:
标签: c++ multithreading locking zeromq nonblocking