제 15 장 동시 프로그래밍 가디언 스레드
# 守护线程 守护的是非守护线程(主线程也是非守护进程)
from threading import Thread,enumerate,currentThread
import time
def task():
print('守护线程开始')
print(currentThread())
time.sleep(20)
# print('守护线程结束')
def task2():
print('子线程 start')
time.sleep(5)
print(enumerate())
print('子线程 end')
if __name__ == '__main__':
t1 = Thread(target=task)
t2 = Thread(target=task2)
t1.daemon = True
t2.start()
t1.start()
print('主')
데몬 스레드 : 비 스레드 코드가 데몬을 실행이 완료가, 데몬 스레드가 끝날 것 (비 데몬 스레드의 보호자)
스레드 후 메인 쓰레드가 end (데몬 스레드가이 시간에 복구 될 간주 다른 비 데몬을 실행 완료
강조 : 메인 스레드가 아닌 스레드 데몬 (스레드를 포함 과정)입니다
요약 : 데몬을 도입하는 이유는 메인 스레드의 끝이 과정의 끝을 의미, 전체 프로세스는 자원을 재활용되며, 과정은 비 데몬 스레드가 실행을 완료 한 후에 종료 보장해야
데몬과 데몬 스레드의 차이
- 데몬 : 주요 프로세스 코드가 실행이 완료 데몬은 끝날 것이다
- 데몬 스레드 : 비 데몬 스레드가 실행이 완료, 스레드 끝의 보호자