"Мутанты среди нас". Многопоточное программирование
Организация взаимодействия потоков через мьютексы. Многопоточное программирование и особенности вывода данных программой. Рассмотрение сущности значения COUNT. Оценка вероятности удержания мьютекса до конца цикла записи потока в глобальную переменную.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 19.11.2020 |
Размер файла | 552,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http: //www. allbest. ru/
Лабораторная работа 7
"Мутанты среди нас". Многопоточное программирование
Подготовил: ст. гр. БПО-18-01 Мамбетов К.Р.
Проверил: пр. к. ВТИК Гиниятуллин В.М.
Основная часть
Цель. Организовать взаимодействие потоков следующего вида: одну глобальную переменную - строку А = 4 (таблица 4) потоков пишут и выводят каждый свою строку. Четные потоки пишут по В = 6 строк, нечетные по С = 1 строк.
Ожидаемый результат: запускаются 4 потока, которые пишут в глобальную переменную каждый свою строку 6 раз, если четный поток, и 1 раз, если нечетный поток, после чего выводят строку-глобальную переменную. Вывод программы при каждом выполнении разный из-за того, что невозможно предсказать, какой процесс захватит мьютекс.
Код. Код программы потока (1) представлен для A потоков, для четных потоков COUNT = 6, для нечетных - 1. Основной код программы (2) инициализирует мьютекс и потоки, ожидает завершение выполнения потоков, после чего удаляет мьютекс, выводит сообщение о завершении работы и завершает работу.
Анализ результатов и выводы: Организовано взаимодействие потоков через мьютексы. Невозможно предсказать, какой поток захватит мьютекс первым, из-за чего вывод программы получается разным (см. скриншот на следующей странце). Чем больше значение COUNT, тем меньше вероятность того, что поток сможет удержать мьютекс до конца цикла записи в глобальную переменную.
мьютекс многопоточный программирование
Размещено на Allbest.ru
...Подобные документы
Создание потока с помощью конструктора на основе класса Thread, интерфейса Runnable, синхронизации потоков. Краткая справка по необходимым программным компонентам. Составление программы анимации мячей пространстве окна. Диаграмма классов приложения.
лабораторная работа [884,9 K], добавлен 01.05.2014Программирование ввода-вывода на основе потоков в Java. Классы для работы с потоками символов. Характеристика базовых классов. Пример чтения сетевого ресурса. Коллекции как расширение возможностей массивов. Работа с ассоциативными массивами HashMap.
лекция [630,1 K], добавлен 01.05.2014Рассмотрение правил записи, способов ввода и вывода, использования функций обработки символьных данных в Pascal. Описание алгоритмизации и программирования файловых структур данных, проектирования структуры файла. Ознакомление с работой данных массива.
курсовая работа [336,2 K], добавлен 27.06.2015Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.
отчет по практике [913,8 K], добавлен 21.07.2012Общая характеристика структурного программирования. Использование конструкций цикла и условного оператора. Методология функционального моделирования SADT, ее основные элементы. Типы связей между функциями. Моделирование потоков данных (процессов).
дипломная работа [704,7 K], добавлен 20.10.2009