Member 13466456 Ответов: 1

Как заставить поток openmp спать


В настоящее время я работаю над проектом по проектированию аэропорта с ООП. Я использую c++. У меня есть основной объект аэропорта в моей программе, который имеет функцию RequestLanding (), которая назначает номер взлетно-посадочной полосы, на которой самолет может приземлиться. Эта функция возвращает одно из двух перечислений-Hold или continue, чтобы указать, должен ли самолет приземлиться или нет.

Снаружи есть много объектов самолета, которые делают запрос на посадку. Я использую цикл for для общего количества объектов самолета. Я использую OpenMp для параллельного цикла. Я хотел сделать поток openmp спящим в течение 3 секунд, когда функция RequestLanding () возвращает удержание состояния, а затем повторите попытку.

Есть ли способ сделать это ? Может кто-нибудь привести простой пример. Заранее спасибо.

Что я уже пробовал:

я ничего не пробовал. не удалось найти нужную информацию

1 Ответов

Рейтинг:
1

KarstenK

Я бы решил эту проблему не с помощью какой-то функции ожидания, а с помощью семафорного решения. Семафор-это ресурсы, которые обеспечивают некоторый назначенный доступ и поэтому лучше всего подходят для вашего probelm.

Для обучения на семафорах есть краткое объяснение от Microsoft а также некоторые более глубокое понимание.

Эта ссылка может помочь вам найти окончательное решение по Переполнение стека.