首页 > 解决方案 > 如何让线程等待符合要求的条件

问题描述

我已阅读Python 中是否有一种简单的方法可以等到某些条件成立?和其他一些帖子,但我认为它们中的任何一个都不能满足我的具体问题。如果我错过了一个,我很抱歉,我只是不确定在我已经拥有的之外要搜索什么。

我有很多线程在做某种计算。我需要它们按创建顺序打印。我目前的解决方案是:

while thread_num != current_print_num:
    pass
print(data)
current_print_num += 1

我不相信这是最有效的方法。检查我在while循环中设置的条件后,有没有办法让线程停止执行一段时间?我知道我可以让它睡觉,但我不想设置它等待的时间。理想情况下,它会在 current_print_num == thread_num 时唤醒。

一个好的解决方案是让线程在前一个线程完成时相互通信。有什么好的方法吗?

标签: pythonpython-3.xmultithreadingpython-multithreading

解决方案


推荐阅读