我有一个正在轮询硬件的线程。
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
声明,但我很确定这完全是另一回事(与生成器有关)。
在这里做什么是正确的?