본문 바로가기
카테고리 없음

데몬 스레드(보조 스레드) 사용법 & 예제

by nono22 2023. 11. 27.

데몬 스레드(보조 스레드) 사용법과 예제

데몬 스레드란?

데몬 스레드(또는 보조 스레드)는 백그라운드에서 실행되는 스레드로, 주 스레드(main 스레드)의 작업을 돕는 역할을 합니다. 데몬 스레드는 주 스레드가 종료되면 자동으로 종료되는 특성이 있으며, 보조적인 역할을 수행하며 주로 시스템 리소스의 관리나 백그라운드 작업에 사용됩니다.

데몬 스레드 생성

다음은 Python에서 데몬 스레드를 생성하는 방법입니다.

import threading

def daemon_func():
    # 데몬 스레드에서 실행될 동작 정의
    pass

# 데몬 스레드 생성
daemon_thread = threading.Thread(target=daemon_func)

데몬 스레드로 설정하기

데몬 스레드는 setDaemon() 메소드를 사용하여 주 스레드가 종료될 때 함께 종료되도록 설정할 수 있습니다.

daemon_thread.setDaemon(True)

데몬 스레드 실행

데몬 스레드는 start() 메소드를 호출하여 실행할 수 있습니다.

daemon_thread.start()

데몬 스레드 예제

다음은 데몬 스레드의 예제입니다. 데몬 스레드는 주 스레드(main 스레드)의 종료 시간을 대기하다가 특정 작업을 수행하는 역할을 합니다.

import threading
import time

def daemon_func():
    print("데몬 스레드가 실행 중입니다.")
    time.sleep(5)
    print("데몬 스레드가 종료되었습니다.")

# 데몬 스레드 생성
daemon_thread = threading.Thread(target=daemon_func)

# 데몬 스레드로 설정
daemon_thread.setDaemon(True)

# 데몬 스레드 실행
daemon_thread.start()

# 주 스레드에서 일부 작업 수행
print("주 스레드 작업 중입니다.")
time.sleep(10)
print("주 스레드 작업이 완료되었습니다.")

실행 결과를 보면 주 스레드의 작업이 먼저 완료되고 난 후에 데몬 스레드가 종료되는 것을 확인할 수 있습니다.

주 스레드 작업 중입니다.
데몬 스레드가 실행 중입니다.
주 스레드 작업이 완료되었습니다.
데몬 스레드가 종료되었습니다.

참고사항

  • 데몬 스레드는 주 스레드의 종료 시간을 대기하다가 주 스레드가 종료되면 즉시 종료되므로, 중요한 작업이나 리소스 정리와 같은 작업에는 사용하지 않는 것이 좋습니다.
  • 데몬 스레드는 주 스레드 종료 시 자동으로 종료되기 때문에 join() 메소드로 명시적으로 대기할 필요가 없습니다.
  • 주 스레드가 모든 데몬 스레드의 종료를 기다리기 위해서는 join() 메소드를 사용할 수 있습니다.

댓글