簡體   English   中英

Python while循環與倒數和條件

[英]Python while loop with countdown and condition

我需要創建條件循環,該循環從另一個線程獲取響應,但不要等待太久。 這就是為什么我決定使用兩個條件,例如

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

這是一個好習慣嗎?

讓我們避免XY問題

我有兩個線程和該線程的共享存儲,我所需要的只是在第一個線程完成其工作時等待第二個線程,然后,我從第一個線程獲取結果並將其放入我的第二個線程。 為了共享作業的結果,如果使用第一個線程的響應,則使用共享存儲和函數is_get_responce()返回布爾值。

我知道我可以使用.join()等待第一個線程,但是我沒有第二個線程的鏈接,這對我來說不是一個好選擇。

假設is_get_responce()配置正確,對我來說,以下內容將更有意義:

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

話雖如此,這實際上可能是XY問題 ..

我不知道您是否可以這樣做,但以下是最佳做法。

使用thread.join()方法並指定超時。

這使您可以等待線程完成,直到發生可選超時為止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM