Python 中的 LMAX 干扰器

Posted

技术标签:

【中文标题】Python 中的 LMAX 干扰器【英文标题】:LMAX Disruptor in Python 【发布时间】:2020-03-19 09:21:56 【问题描述】:

是否已经有 Python3 的实现(或至少绑定到)?

我可以在 Github 上看到 Java 的原始实现,但我没有看到 Python3 的任何内容。

【问题讨论】:

【参考方案1】:

data-pipe 提供了简单的基于 cython 的实现:

https://pypi.org/project/data-pipe/ https://github.com/random-python/data_pipe

【讨论】:

1) 不,这不是完全的破坏者,而是能力展示。 2) 设计上没有原子/锁定 3) 是的,有内存屏障,请参阅 native_any.h。 4) 在内部,我们开发了单生产者/多消费者变体,仍然不需要原子/锁定,适用于跨线程和跨进程配置文件。 糟糕,我对代码结构的分析不够彻底。不熟悉 Cython 扩展,*.pxd 和 *.pyx 文件让我很困惑 :) 再次检查后,native_any.hnative_any.pxd 定义 native_bool_compare_swap_int 以暴露 GCC 编译器内在。但据我所知,这个函数从未在任何其他文件中使用过。 native_synchronize 也一样。你能解释一下这是如何工作的吗?

以上是关于Python 中的 LMAX 干扰器的主要内容,如果未能解决你的问题,请参考以下文章

Python中的property类和@property装饰器

在类似 LMAX 的破坏者模式中,您如何处理缓慢的消费者?

Python 简明教程 --- 20,Python 类中的属性与方法

LMAX Disruptor 最简单实际的示例代码

将 Python 添加到装有 LibreOffice 的机器会干扰 LibreOffice Python 宏的执行吗?

是否应该将 Disruptor (LMAX) 与内存和 CQRS 中的大模型一起使用?