使用C++原子库来同步内存访问的无锁、线程安全队列。
atomic-queue的Python项目详细描述
原子队列
基于LMAX中断器的线程安全、无锁队列实现,用C++编写CRITTECAL部分。在
此队列支持多个生产者和消费者。生产商负责管理自己的线程, 而使用者线程则由队列管理,是实现EventHandler接口所必需的。在
示例
使用缓冲区容量和等待策略初始化原子队列实例。缓冲区容量必须是2整数的幂。在
from atomicqueue import AtomicQueue, BUSY_SPIN_WAIT_STRATEGY
queue = AtomicQueue(256, wait_strategy=BUSY_SPIN_WAIT_STRATEGY)
定义如何使用事件。在下面的示例中,事件处理程序“hüu one”和“h_two”可以互相溢出,但不能使发布程序溢出,而事件处理程序“h_3”只能在“h_1”和“h_2”消费完事件之后才能消费事件。在
^{pr2}$配置完成后,可以使用以下命令启动队列。在
queue.start()
要发布到队列,只需在队列上调用publish_event。在
queue.publish_event(event)
通过调用Stop()停止队列。在
queue.stop()
- 项目
标签: