thread(쓰레드) 

 

파이썬은 하나의 쓰레드에서 실행됩니다. 즉, 코드를 순차적으로 실행합니다.  코드를 병렬로 실행하기 위해서는 별도의 쓰레드를 생성해야 하는데, 파이썬에서 쓰레드를 생성하기 위해서는 threading 모듈의 High레벨과 thread 모듈의 Low레벨을 사용할 수 있습니다. 주로 쓰는 것이 threading 모듈의 High레벨입니다.

 

파이썬은 전역인터프리터락킹(Global Interpreter Lock)때문에 특정 시점에 하나의 파이썬 코드만을 실행하게 됩니다.

그래서 파이썬은 다중 CPU 환경에서 동시에 여러 파이썬 코드를 병렬로 실행 할 수 없습니다. 인터리빙(Interleaving)방식으로 코드를 분할해서 실행합니다. 

 

다중 CPU를 병렬을 실행하기 위해서는 다중 프로세스를 이용하는 Multiprocessing 모듈을 사용합니다.

 

threading 모듈 

쓰레드를 실행하기 위해서는 therading 모듈의 threading.Thread()함수를 호출하여 Thread 객체를 얻은 후 Thread 객체의 start() 메서드를 호출하면 됩니다. 

 

서브쓰레드는 함수, 메서드 둘 중에 하나 실행하는데 구현 방식은

첫 번째로 쓰레드가 실행할 함수 혹은 메서드를 작성

두 번째로 Threading.Thread로부터 파생된 파생클래스를 작성하여 사용하는 방식이 있다.

 

데몬 쓰레드

Thread 클래스에서 daemon 속성은 서브쓰레드가 데몬 쓰레드인지 아닌지를 지정하는 것인데,

데몬쓰레드란 백그라운드에서 실행되는 쓰레드로 메인 쓰레드가 종료되면 즉시 종료되는 쓰레드이다. 반면 데몬 쓰레드가 아니면 해당 서브쓰레드는 메인 쓰레드가 종료할 지랃 자신의 작업이 끝날 때까지 계속 실행딘다.

 

 

 

이상포스터를 마치겠습니다.

+ Recent posts