|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Описание глобальных переменныхВ данном разделе приведены описания глобальных переменных, используемых в программе: int BornNum; // общая область для всех потоков int BornHorseDest; // город в котором рождается лошадь int BornCowboyDest; // город, где рождается ямщик int BornCowboyNumber; // номер ямщика, с которым он рождается HANDLE hmtx; //семафор BOOL hflag; // лошадиный флаг int dest; // номер города.
Принцип работы Программа состоит из следующий функций: 1 void horsethread(void *arg) Данная функция отвечает за лошадей. Сначала описывается, какая лошадь, в какой город едет. Затем в бесконечном цикле while (TRUE) происходит подготовка лошадей к поездке в город. В цикле while (horses[num].hflag) происходит перемещение лошадей вместе с ямщиками. Если условия данного цикла выполняются, то это означает, что лошадь прибыла в нужный город и отдыхает. За это отвечает WaitForSingleObject(horses[num].hmtx, INFINITE). Выполнение ReleaseMutex(horses[num].hmtx) говорит о том, что лошадь отдохнула, готова ехать дальше и цикл повторяется по-новой. 2 void cowboythread(void *arg) Данная функция отвечает за ямщиков. Внутри данной функции при помощи srand(time(NULL)) и next=(rand()%7)+1 происходит случайное распределение, какой ямщик, в какой город поедет. Далее также происходит бесконечный цикл while (TRUE). Когда hflag=FALSE выводится сообщение о том, что ямщик занял лошадь. Когда ямщик добрался до нужного ему города hflag=TRUE Void main(void) Основная функция программы. В ней происходит непосредственное «рождение» лошадей и ямщиков. Она вызывает две предыдущие функции.
Разработка пользовательского интерфейса Приложение представляет собой консольное окно, в котором выводятся сообщения о действиях программы, а точнее о перемещениях ямщиков, При запуске приложения запускается консольное окно, в котором пользователю сообщается о том, какая лошадь в каком городе находится на начальном этапе и сообщения о готовности лошадей к отправке. Далее происходит непосредственное перемещение ямщиков между городами. То есть ямщик выбирает лошадь, едет в какой-то город, там лошадь отдыхает и ямщик может взять другую лошадь и т.д. Текст программы Разработка приложения велась на языке C. Листинг кода программы представлен в приложении А. Заключение Результатом курсовой работы является приложение с использованием основных принципов многопоточного программирования в соответствии с выбранным вариантом. В ходе тестирования была проверена правильность работы программы. В ходе написания программы были усвоены основные принципы и методы разработки многопоточных программ.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |