Привет, Я пытаюсь написать программу в C++ или Java, которая использует потоки. Я не знаю, с чего начать. Это для класса операционных систем. Класс только преподает понятия и никакого фактического кодирования вообще. Профессор просто передает это задание и говорит, что он вообще не поможет. Большое спасибо за помощь.
Ниже приведены требования к программе:
Целью этого задания является создание подпрограммы, которая создает несколько потоков, если они работают параллельно и заканчивается, когда последний поток завершен.
Сценарий: Есть несколько групп людей в баре, наблюдая за Олимпийскими играми, которые восхищаются своей страной. Каждая группа будет приветствовать для своей страны определенное количество раз, со случайной паузой (между 2 и 5 секундами) между каждым приветствием. В баре достаточно места для размещения до десяти различных групп (каждый из них будет приветствовать другую страну).
Программа: задача состоит в том, чтобы написать программу, которая будет имитировать эти приветствия, используя потоки. Программу следует называть cheer.X(X - язык выбора). Вы можете использовать любой язык, поддерживающий потоки. Когда программа запускается, она должна запрашивать количество стран, а затем имя и сколько раз это будет приветствоваться. Затем основная функция создаст поток для каждой команды, и каждый поток отвечает за аплодисменты указанного количества раз для правильной команды на случайном интервале. Вы отправите файл исходного кода для меня, чтобы открыть и скомпилировать себя, а не исполняемый файл.
Примером может быть приветствие: "Иди США!" Пример run будет выглядеть примерно так: Сколько стран поддерживается в баре? 3 Введите первый: Китай Сколько ура? 2 Введите второе: США Сколько ура? 4 Войдите в третий: Россия Сколько ура? 3
Go USA! Пойдите в Китай! Иди в Россию! Пойдите в Китай! Go USA! Иди в Россию! Go USA! Иди в Россию! Go USA! (Помните, что будет пауза, и последовательные прогоны с теми же аргументами не приведут к тем же результатам)
Вы можете использовать C++ 11 для многопоточности или установки библиотеки pthread в вашей системе и написать простой многопоточный код C++. Java также является очень хорошим вариантом для написания многопоточной программы.
Я бы предложил, прежде чем писать код, попытаться получить базовое понимание потоков, как синхронизировать несколько потоков.
Для справки библиотеки pthread. Пройдите это.
Вот страница wiki для базового понимания Threads.
<thread>
, вероятно, будет хорошим местом для начала, но раз вы пометили его какpthreads
, какие-нибудь учебники или примеры того, как что-то сделать с этим?