Python - Thread

헨도·2022년 12월 19일
0

Python

목록 보기
5/12
post-thumbnail

Python

Thread

파이썬에서 Thread를 사용할 수 있도록 해주는 모듈은 '_thread'와 'threading'이 있다.
'_thread' 모듈은 저수준의 API를 제공하고, 고수준의 API는 threading이 있다.
대부분은 threading을 사용한다.

Thread 클래스

threading 모듈은 os 스레드를 객체화한 threading.Thread 클래스를 제공한다.
기본적으로 thread를 통해서 실행하는 작업은 파이썬 함수로 작성한다.
Thread의 instance를 만들 때, 함수와 필요한 인자를 넘긴 후, start()를 호출하여 Thread를 시작한다.

Thread 만들기

Thread(name=, targer=, args=, kargs=, *, daemon=)
  • name : 스레드 이름, But! 거의 사용하지 않는다.
  • target : 스레드에서 사용할 함수
  • args : target에 넘겨질 인자, 튜플 형식
  • kargs : target이 키워드 인자를 입력받을 때, 사전 형태로 넘겨준다.
  • daemon : 데몬 실행 여부(기본 default : False), True로 설정 시, 메인스레드가 종료될 때, 서브 스레드도 같이 종료된다.

Thread 속성

  • start() : 스레드 시작
  • join() : 해당 스레드에서 실행되는 함수가 종료될 때까지 기다린다.
    "timeout=" 인자를 주어 특정 시간까지만 기다리게 할 수 있다.
    timeout에 설정된 시간을 초과하여도 예외를 발생하지 않고 None을 리턴한다.
    이 경우, is_alive() 명령어를 이용하여 스레드가 실행 중인지 파악한다.
  • is_alive() : 해당 스레드가 동작 중인지 확인한다.
  • ident : 스레드의 식별자(정수값), ident는 종료된 스레드 이후에 새로 만들어진 다른 스레드에 재활용 될 수 있다.
  • native_id : 스레드 고유 식별자
  • daemon : 데몬 스레드 여부
profile
Junior Backend Developer

0개의 댓글