gpt4 book ai didi

python - 查找 python 线程状态(无论是 sleep 还是事件)

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

我有一个简单的要求,当一个事件发生时,一个线程被创建并休眠 x 分钟,然后醒来执行它的任务并终止。

但是,如果发生另一个事件,任何正在休眠的线程都应该终止,并且应该为相同的目的产生一个新线程。

在 python 中,我认为让线程休眠的最好方法是,

import time
time.sleep(x*60)

有没有办法了解线程的状态(当前处于休眠/空闲或事件状态)?

最佳答案

真的没有办法很好地做到这一点,因为一个线程要么是活跃的(正在运行的),要么是不活跃的。从技术上讲,即使它在 sleep ,它仍然在运行/活着,它只是什么也没做。

一般来说,在线程中使用休眠并不是真正可取的,因为调整它休眠的时间和/或在需要它做某事时唤醒它可能会很痛苦。

我过去为此使用的一件事是线程模块中的条件。这允许您通过调用 .wait() 将线程置于“ sleep ”状态。然后,您可以使用 .acquire(false) 查看它是否被阻止,然后如果需要,可以使用 .acquire() .notify() .release() 再次唤醒它。

这是一种保持线程不旋转或使用疯狂 sleep 范例的简单方法。

另一个不错的选择是让线程在一段时间内从阻塞队列(python 中的队列模块)消耗 True,这将在技术上为您管理所有这些。

关于python - 查找 python 线程状态(无论是 sleep 还是事件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25414572/

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