@Fox хорошо, спасибо ☺️
как приостанавливать все потоки при выполнении определенного действия?
-
@Tekumi said in как приостанавливать все потоки при выполнении определенного действия?:
шапка, это можно как-то реализовать?
помогите, пожалуйстаОзвучьте изначальную цель, для чего вам нужно приостанавливать все потоки ?
-
@Tekumi said in как приостанавливать все потоки при выполнении определенного действия?:
@Fox на время смены ip прокси с ротацией
Поток ведь при смене ip врядли корректно сможет продолжить работу на сайте, значит нужно менять ip адрес после выполнения работы. Для наглядности можете выделить отдельный поток для проверки блокировок.
Алгоритм следующий, создаёте две глобальные переменные, одна для сигнала ожидать, а вторая для счётчика потоков в ожидании. Выделенный поток в необходимое время включает сигнал и ждёт пока значение в счётчике не будет равно количеству потоков. Потоки завершают работу, видят сигнал ожидания в глобальной переменной, переходят в цикл ожидания увеличивая на 1 счётчик из второй глобальной переменной. Выделенный поток дожидается пока все потоки перейдут в ожидание и выполняет ротацию прокси, после этого снимает блокировку и обнуляет счётчик. Потоки при этом выходят из цикла и начинают работу