Inflearn Community Q&A
daemon=True가 안 먹히네요
Written on
·
50
0
안녕하세요.
저는 daemon=True 해도 서브가 모두 돌고 끝납니다. 무슨 이유가 있을까요?
# 스레드 실행 함수
def thread_func(name, d):
logging.info('Sub-Thread %s: starting', name)
for i in d:
print(i)
logging.info('Sub-Thread %s: finished', name)
...
# 함수 인자 확인
# daemon : default False
x = threading.Thread(target=thread_func, args=('First', range(20000)), daemon=True)
y = threading.Thread(target=thread_func, args=('Second',range(10000)), daemon=True)19:16:32: Main-Thread: all done
0
1
2
...
19999
19:16:32: Sub-Thread Second: finished
19:16:32: Sub-Thread First: finished
python동시성
Answer 2
1
niceman
Instructor
네 안녕하세요. 좋은 질문입니다.
메인쓰레드가 먼저 종료된것처럼 보이나, 실제로는 메인쓰레드 출력과 동시에
데몬쓰레드 출력이 나중에 표시된 것입니다.
실제 업무 환경에서도 ide에서 print 문으로 텍스트를 출력하는 시간이 미세하게
차이가 있습니다.
소스코드는 정상입니다.
주로
logging
I/O flush
lock
handler 종료 대기
등으로 아주 짧은 시간이지만 데몬쓰레드 실행이 끝나버립니다.(컴퓨터 성능이 그만큼 빠르기 때문)
참고 하시면 될 것 같습니다.
감사합니다.
0




