【发布时间】:2010-10-21 17:30:03
【问题描述】:
我有一个正在轮询硬件的线程。
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 语句,但我很确定这完全是另一回事(与生成器有关)。
这里的正确做法是什么?
【问题讨论】:
标签: python multithreading yield