Python while循环与倒计时和条件

时间:2018-02-22 12:47:01

标签: python while-loop

我需要创建while循环,条件是从另一个线程获取响应但不等待太长时间。这就是为什么我决定使用两个条件,如

i = 0
while (not is_get_responce() and i<10000):
    i+=1
    time.sleep(1)

这是一个好习惯吗?

让我们避免使用XYproblem

我有两个线程和共享存储空间,我需要的是在第一个线程完成他的工作时从第二个线程等待,之后,我从第一个线程得到结果并将它放到我的第二个线程。为了共享作业的结果,我使用共享存储和函数is_get_responce()返回布尔值,如果我们有来自第一个线程的响应。

我知道我可以使用.join()来等待第一个线程,但我没有第二个线程的链接,对我来说这不是一个好的选择。

2 个答案:

答案 0 :(得分:4)

假设is_get_responce()配置正确,以下内容对我来说更有意义:

start = time.time()
while time.time() - start < 10000:
    if is_get_responce():
        break
    time.sleep(1)

话虽如此,这实际上可能是XY Problem ..

答案 1 :(得分:0)

我不知道你的情况是否可行,但最佳做法如下。

使用thread.join() method并指定超时。

这允许您等待线程完成,直到发生可选的超时。