매우 간단한 스크립트입니다.스레딩 세트 데몬이 작동하지 않습니다.
test.py
import temp
temp.start()
temp.py
import threading, time
f=open("output.txt","w")
def temp():
for i in range(5):
f.write(str(i))
time.sleep(5)
f.close()
def start():
t=threading.Thread(target=temp)
t.setDaemon(True)
t.start()
내가
test.py
종료 주와
daemon
스레드가 종료를 immediately.But 및처럼 행동하지 않는 주요 과정으로 완료 데몬 스레드를 예상
a daemon
. 내가 여기에 기본적인 것을 놓치고있어?
왜 스레드가 '완료'합니까? 도스는 매우 명확하게 보입니다. "데몬 스레드는 시스템 종료시 갑작스럽게 중단됩니다. 열린 파일, 데이터베이스 트랜잭션 등의 리소스가 제대로 릴리스되지 않을 수도 있습니다. 스레드를 정상적으로 중지하려면 데몬스트림이 아닌 데몬틱하게 만들고 사용하십시오. 이벤트와 같은 적절한 신호 메커니즘 " – pvg
@martineau 그러면 주 프로세스는 스레드 완료를 기다립니다. – vks
아니요, 프로그램 종료입니다. '데몬 스레드'는 기본적으로 '파이썬 런타임을 종료 할 때이 스레드를 고려하지 마십시오'라는 의미입니다. 그냥 버려졌습니다. – pvg