2011-03-13 3 views
2

3 가지 작업이 있습니다 : t1, t2 및 t3. 두 개의 병렬 스레드에서 t1과 t2를 실행하고 싶습니다. 그리고 t3를 실행하기 전에 t1과 t2 실행이 끝날 때까지 기다리고 싶습니다.파이썬 스레드 동기화

t1 =========> |
(T2) ====>                       |
t3 ...................... | =======>
-------------- -----------------------------------------------(시각) ->

스레드 동기화에 대한 몇 가지 근거가 있지만이 경우 관리 방법을 찾을 수 없습니다. 파이썬 라이브러리에 빌드 - 인 솔루션이 있습니까? 내 자신의 (세마포 기반?) 솔루션을 작성해야합니까?

답변

6

당신은 join와 스레드에서 기다릴 수 :

# start the two threads 
t1.start() 
t2.start() 

# wait until both ended 
t1.join() 
t2.join() 

# then start the third 
t3.start()