gpt4 book ai didi

python - Python Twisted中的互斥量

转载 作者:行者123 更新时间:2023-12-03 13:01:45 25 4
gpt4 key购买 nike

我正在使用Twisted框架,并且正在异步获取RPC。我还有另一个功能,每2秒执行一次任务,并在两者之间 sleep 。这是通过reactor.callInThread调用的。这些依赖于共享资源,因此我需要一些线程安全的方式来访问它们。如何在扭曲状态下使用关键部分/互斥锁/锁?

最佳答案

尽管您可以使用扭曲线程,但通常使用扭曲线程的惯用法是使用单个线程异步进行RPC。那就是它的优势之一。当RPC结果准备就绪时,扭曲的框架将运行 react 堆并调用您的处理程序事件。然后,您的代码运行,当处理程序退出时,控制权返回到 react 堆,该 react 堆将调用下一个已准备好代码的处理程序。因此,即使在并行状态中发生了很多事情,twisted仍可确保一次仅运行一个函数,因此您无需进行任何静音操作,只需维护状态变量即可使您的回调知道它们当前的上下文是什么。操作就足够了。

如果您明确创建线程并在运行扭曲的框架中使用它们,则可能需要使用Standard Python Mutex之类的东西,尽管您需要非常小心,不要让您的主Reactor回调线程在互斥量上等待任何时间因为不应阻止 react 堆中的回调。

关于python - Python Twisted中的互斥量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1051652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com