Сделать паузу между потоками при выполнении одинакового действия

nussus

Client
Регистрация
19.08.2016
Сообщения
22
Благодарностей
8
Баллы
3
Доброго дня, не знаю как еще заголовок описать. Возможно это нельзя никак сделать, либо можно через c#, буду признателен любым советам. Суть в следующем:
Имеется шаблон, запускаем его в много потоке, допустим 2 потока. Поток 1 делает гет-запрос в рандомное время, поток 2 так же делает точно такой же запрос в рандомное время, но поток 2 не будет делать гет-запрос, пока не пройдет n-секунд после действия 1 потока, чтобы не пересечься.

Проще говоря, как сделать так чтобы поток 1 и 2 не выполняли одновременно действия, а было разграничение по времени между действиями потоков. Как бы поток 2 смотрит за потоком 1 и если между ними выпадает одновременное одинаковое действие, то поток 2 делает паузу на n-секунд и потом только выполняет действие.
 

volody00

Client
Регистрация
06.09.2016
Сообщения
896
Благодарностей
920
Баллы
93
флажок поставь. вот идёт 1 поток, и он ставит в глобальную переменную "stop". 2-й проверяет если stop, то жду. Когда 1-й закончит он stop уберет. Прикрепил пример. Надёжнее конечно полностью на c# переписать, т.к. в теории тут за эту секунду что он проверяет есть ли флаг они могут оба успеть проскочить
 

Вложения

  • 16,2 КБ Просмотры: 5
  • Спасибо
Реакции: nussus

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)