본문 바로가기
파이썬

파이썬 threading.Thread의 setDaemon () 메서드

by º기록 2020. 10. 8.
반응형

저는 파이썬 프로그래밍의 초보자입니다. 프로세스가 데몬이 될 수 있지만 데몬 모드의 스레드라는 것을 이해합니다. 이의 사용 사례를 이해할 수 없었습니다.이를 이해하는 데 도움이되도록 파이썬 전문가에게 요청할 것입니다. .

 

해결 방법

 

스레딩을 사용하는 몇 가지 기본 코드는 다음과 같습니다.

import Queue
import threading

def basic_worker(queue):
    while True:
        item = queue.get()
        # do_work(item)
        print(item)
        queue.task_done()
def basic():
    # http://docs.python.org/library/queue.html
    queue = Queue.Queue()
    for i in range(3):
         t = threading.Thread(target=basic_worker,args=(queue,))
         t.daemon = True
         t.start()
    for item in range(4):
        queue.put(item)
    queue.join()       # block until all tasks are done
    print('got here')

basic()

실행하면

% test.py
0
1
2
3
got here

이제 줄을 주석 처리하십시오.

         t.daemon = True

다시 실행하면 스크립트가 동일한 결과를 인쇄하지만 중단되는 것을 볼 수 있습니다. 메인 스레드는 끝나지만 ( got here 가 인쇄되었습니다) 두 번째 스레드는 끝나지 않습니다.

반대로 t.daemon True 로 설정되면 메인 스레드가 종료 될 때 t 스레드가 종료됩니다.


 

참조 페이지 https://stackoverflow.com/questions/5127401

 

 

반응형

댓글