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