我有一个线程正在轮询一块硬件设备。
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
语句,但我相信那完全是另一回事(与生成器有关)。
这里应该怎么做才正确呢?