小编典典

如何在Python中使用threading.Thread产生其其余部分?

python

我有一个正在轮询硬件的线程。

while not hardware_is_ready():
    pass
process_data_from_hardware()

但是可能还有其他线程(和进程!)需要处理。如果是这样,我不想消耗CPU检查其他所有指令的硬件。自从我处理线程以来已经有一段时间了,那时我还不是Python,但是我相信大多数线程库都有一个yield函数或某种允许线程告诉调度程序“给其他线程一个机会”的东西。

while not hardware_is_ready():
    threading.yield()          # This function doesn't exist.
process_data_from_hardware()

但是我在线程文档中找不到对此类内容的任何引用。Python确实有一条yield语句,但是我很确定这完全是另一件事(与生成器有关)。

在这里做什么正确的事?


阅读 139

收藏
2020-12-20

共1个答案

小编典典

time.sleep(0)足以控制产量-无需使用正epsilon。确实,time.sleep(0)MEANS“屈服于任何其他可能准备就绪的线程”。

2020-12-20