나는 queue.join()을 사용하면 종료되지 않는 간단한 파이썬 응용 프로그램을 가지고 있습니다.Python 스레딩 응용 프로그램이 종료되지 않습니다.
import threading
import Queue
q = Queue.Queue()
for i in range(5):
q.put("BLAH")
def worker():
while True:
print q.qsize()
a = q.get()
print q.qsize()
q.task_done()
print q.qsize()
for i in range(2):
t = threading.Thread(target=worker())
t.daemon = True
t.start()
q.join()
나는 또한 인쇄의 threading.enumerate는(), 다음 2 초 자고있는 감시 스레드를 만들었습니다 아래는 코드입니다. 남아있는 유일한 스레드는 MainThread이고 큐 크기는 사실 0입니다.이 스크립트는 절대로 종료되지 않습니다. Ctrl + z를 누른 다음 죽여야합니다. 무슨 일이야?
스레드 변경을 't = threading.Thread (target = worker)'로 변경합니다. – mtadd