나는이 큐에 약간의 문제에 봉착 :함수를 호출 할 때이 스레드를 종료하는 가장 좋은 방법은 무엇입니까?
import Queue
import threading
class test(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.request_queue = Queue.Queue()
def addtoqueue(self, item):
self.request_queue.put(item)
def run(self):
while True:
item = self.request_queue.get(True)
print item
이 간단한 클래스는 스레드 큐를 구현합니다. test::addtoqueue
을 호출하면 항목이 대기열에 추가됩니다. 스레드는 항목이 대기열에 추가 될 때까지 기다리고 즉시 인쇄하고 다음 것을 기다립니다.
제 문제는 응용 프로그램 종료입니다. 스레드를 종료하는 가장 좋은 방법은 무엇입니까? 조건을 사용할 수는 있지만 어떻게 을 기다릴 수 있습니까?은 조건의 알림 또는 대기열의 새 항목 중 하나입니까?
을 흠 ... 한 가지 문제를 그래도. 'self.request_queue.get' 블록을 막기 때문에'self.is_running'을 실제로 테스트하지 않는다면 실제로'False'로 설정됩니다. –
@George Edited! – Oli