@Batlab
PHP Senior | Python Middle | JS Junior

Как дождаться окончания потоков в Python?

Сразу прошу админов не закрывать тему по причине "легко гуглится". Я гуглил - не нашел.
Переходим к теме.
Имеется следующий код:
def run(self):
        # Работа с прокси
        self.proxyList = self.jobProxy.split('\n') # Список прокси
        self.jobCount =  len(self.proxyList) # Количество прокси
        # Цикл по созданию потоков
        threads = []
        for i in range(self.jobCount):
            # Создаем новый поток и передаем ему 1 прокси
            t = threading.Thread(target = self.mainProccess, args = (self.proxyList.pop(0),))
            threads.append(t)
            t.start()
        # Конец цикла по созданию потоков
        print('Работа завершена!')

Я новичок в питоне и еще не сильно разобрался в нем, но. Мне нужно, чтобы последняя print строка выводилась только тогда, когда в цикле for закончат работу все потоки.
Схема должна быть такова: передаем прокси в цикл for > работаем с потоками > если все потоки закончились, то вывести print()
А выходит такая схема: начинается цикл for > выводится print > дальше работают потоки сами по себе
Как здесь реализовать синхронное выполнение кода?
  • Вопрос задан
  • 2882 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
...
for t in threads:
    t.join()
print('Работа завершена!')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы