
child_terminate 속성이 True 인 쓰레드가 종료되면, 부모 쓰레드는 종료되지 않습니다. 대신에, 쓰레드가 종료되면 daemon 쓰레드로 전환됩니다.
child_terminate 속성을 False 로 설정하면, 부모 쓰레드는 종료되지 않습니다. 대신에, 쓰레드가 종료되면 부모 쓰레드도 종료됩니다.
child_terminate 속성이 True 인 쓰레드가 종료되면, 부모 쓰레드는 다음과 같이 동작합니다.
- 쓰레드가 종료되면 daemon 쓰레드로 전환됩니다.
- 쓰레드가 종료되면 부모 쓰레드는 종료되지 않습니다.
child_terminate 속성을 False 로 설정하면, 부모 쓰레드는 다음과 같이 동작합니다.
- 쓰레드가 종료되면 부모 쓰레드도 종료됩니다.
- 쓰레드가 종료되면 daemon 쓰레드로 전환되지 않습니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
python
import threading
import time
def worker():
for i in range(5):
print(f"Worker: {i}")
time.sleep(1)
def main():
t = threading.Thread(target=worker)
t.daemon = True # child_terminate 속성이 True
t.start()
time.sleep(3)
print("Main thread terminated")
main()
위 코드에서, worker 쓰레드는 daemon 쓰레드로 전환되어 종료되지만, main 쓰레드는 종료되지 않습니다.
#hostingforum.kr
python
import threading
import time
def worker():
for i in range(5):
print(f"Worker: {i}")
time.sleep(1)
def main():
t = threading.Thread(target=worker)
t.daemon = False # child_terminate 속성이 False
t.start()
time.sleep(3)
print("Main thread terminated")
main()
위 코드에서, worker 쓰레드가 종료되면 main 쓰레드도 종료됩니다.
2025-05-03 01:47