Синхронизация потока Python - PullRequest
2 голосов
/ 13 марта 2011

У меня 3 задания: t1, t2 и t3. Я хочу запустить t1 и t2 в двух потоках параллелей. И я хочу дождаться окончания выполнения t1 и t2, прежде чем запускать t3.

t1 =========> |
t2 ====> |
t3 ...................... | =======>
-------------------------------------------------- ----------- (время) ->

У меня есть основания для синхронизации потоков, но я не могу понять, как справиться с этим делом. Есть ли какое-нибудь встроенное решение в библиотеке Python, мне нужно было написать свое собственное (на основе семафора?) Решение?

Ответы [ 2 ]

6 голосов
/ 13 марта 2011

Вы можете подождать в темах с join:

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

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

# then start the third
t3.start()
1 голос
/ 13 марта 2011

Я бы посоветовал вам взглянуть на модуль threading. Он предоставляет объекты блокировки , объекты условия и объекты семафора .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...