0
파이썬 스레드의 "데몬"플래그를 이해하려고합니다. 알겠습니다.스레딩 : 스레드가 작업을 끝내기 전에 종료합니다.
스레드가 "데몬 스레드"로 플래그 될 수 있습니다. 이 플래그의 의미는 데몬 스레드 만 남아있을 때 전체 Python 프로그램이 종료된다는 것입니다. 초기 값은 작성 스레드에서 상속됩니다.
내 경우에는 파이썬 프로그램이 데몬 스레드가 남아 있고 스레드가 작업을 끝내기 전에 종료됩니다.
def ThreadDecorator(f):
def wrap(*args,**kargs):
t=Thread(target=f,args=args,kwargs=kargs)
t.daemon=True
t.start()
return wrap
@ThreadDecorator
def runSomething(*args,**kwargs):
i = 0
attente = 0
fileName=kwargs['file']
f=open(fileName,'wt')
while i < 50000:
f.write(str(i)+"\n")
# attente += 0.2
# attente += random.randint(1, 60)/100
# time.sleep(attente)
i += 1
f.close()
return "Finished"
그리고 메인 프로그램
runSomething("5",file='test1.txt')
runSomething("6",file='test2.txt')
첫 번째 스레드 쓰기 번째 메인 블록이 pool
을 포함해야 내가 느끼는 어떤 수
견적이 동작을 설명합니다 : 주에 대한
작업은, 아래가 종료됩니다 포스트를 시작하는 것입니다. 메인 쓰레드가 종료되면 ('runSomething'을 호출 할 때) 데몬 쓰레드는 종료/종료됩니다. – Holloway
그래서 나는 그것들을 틀린 것으로 표시해야합니까? –
비 데몬 스레드에서 생성 된 경우 기본값으로 '거짓'이지만 완료되기까지 계속 실행되도록하려면 yes로 설정하십시오. – Holloway