2

スレッドとキューを学習していますが、Queue()。get()がwhileループを停止できることがわかりました。でも理由はわかりません。

from threading import Thread
from queue import Queue

def working():
    while True:
        print("loop...")
        Queue().get()         ## why here ##

for i in range(5):    
    t = Thread(target=working)
    t.start()

「Queue()。get()」を削除すると、無限ループになります。

4

1 に答える 1

4

ドキュメントには、その理由が正確に記載されています。最初のパラメーターとしてQueue.get()渡さない限り、アイテムが利用可能になるまでブロックします。False

于 2012-11-30T16:03:10.437 に答える