gpt4 book ai didi

python - 死锁主线程而不是忙等待更好吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:51 25 4
gpt4 key购买 nike

我有一个主线程启动多个守护线程来监听文件系统事件。我需要让主线程保持事件状态。为此,我可以使用 while 循环,或将其“死锁”。在性能方面哪个更好?

while True:
time.sleep(1)

from threading import Event
Event().wait()

在这两种情况下,我都可以使用 ctrl+c 中断主线程。

编辑:或者有更好的方法吗?

最佳答案

使用time.sleep(delay),您必须等到 sleep 时间结束才能响应事件,因此代码的响应能力取决于延迟时间。使用 Event().wait() 事件管理时,您的应用程序的响应速度应该更快,因为它会立即响应外部刺激,而无需等待延迟结束。然而,另一方面,这也意味着托管广告必须比将在延迟时间内释放 GIL 的 time.sleep(delay) 更频繁地获取/释放 GIL。 这对性能有何影响?
根据应用程序的类型,如果您有很多事件线程,您可能会发现一些细微差别。这个问题在 Python 2x 或更早版本中尤为明显,在 Python 3x 中,这些函数在低级别上变得贫乏,问题就不那么明显了。

如果您有兴趣了解有关该主题的更多信息,here您将找到使用 python3 获取锁的函数的 C 实现。

我希望我已经完整地回答了你的问题。

关于python - 死锁主线程而不是忙等待更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58054087/

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