使用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()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
从文本文件中读取时显示java符号“ï»”   java在有很多生产商的情况下如何改进Disruptor?   不同线程的java不同堆栈   用Java模拟oraclespool   jsp java访问自定义web中的错误信息。xml错误页   给出奇怪结果的java集成堆栈   java在jsp中显示值列表   java会话。保存更新具有错误ID的实体   在树数据结构中添加节点时的java递归   java在Spring Data Mongodb中使用$$ROOT检索整个文档   java我应该把图像放在罐子里还是不放在罐子里?(Inno设置)   java将bat文件放入jar文件中   Java:如何在节点上执行XPath查询   控制台应用程序如何在Mac上从Java输出重音字符?