Python의 언어적 한계로 Thread 기능의 지원이 적합하진 않다고 하지만, 문제점을 최대한 개선하여 GIL이라는 장치를 통해 지원한다고 합니다. GIL은 Global Interpreter Lock의 약자입니다. 코드는 다음과 같습니다.
import threading class T(threading.Thread): def __init__(self): threading.Thread.__init__(self) pass def run(self): for i in range(100): print(self.name, i)
13번 줄의 코드인 self.name은 Thread-n과 같은 스레드의 내부 이름이며, 여기에서 n은 내부 번호입니다. 앞서 정의한 스레드 T의 사용은 다음과 같습니다.
ts = [T() for i in range(4)] for t in ts: t.start()
총 4개의 스레드를 생성하고 start 매서드를 통해 스레드를 시작합니다.