使用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第三方库


热门话题
Spring3MVC:将JavaMIMessage电子邮件显示为html   java从嵌套列表中获取最大值,并使用流将其转换为一个列表   内存泄漏java StackOverflower在无限循环中抛出错误   java线性回归,标准误差问题   java如何使用HQL/Hibernate验证我的所有表都是空的?   java扫描封闭空间   Java和Selenium:在id和选择器写得不好时获取列表内容   java数组项的索引不断增加这很简单,我不知道怎么做   java重用来自不同类的变量?   java为什么我的递归函数在循环中失败?   如何在Java单例枚举构造函数中调用方法?   HDFS上的java文件,用于初始化Flink作业中的对象   io Java:如何处理试图修改同一文件的两个进程   java从MySql迁移:MariaDB服务器意外关闭客户端连接   这是我写的代码,但是提交不起作用。其显示RE(NZEC)错误   java垃圾收集的“隔离岛”   java调用另一个类中的AppCompatActivity类   java spring@Value注释、继承和公共字段,但值不同   java重载未按预期运行