Описание интерфейса, решения и алгоритмов задач, реализуемых каждым потоком, а также методов создания, уничтожения и синхронизации потоков. Изучение методов заполнения массива случайными числами и вычисления длины линии между пространственными точками.
Разработать программу, которая создает в отдельном потоке случайный массив А из N целых чисел в диапазоне от-999 до 999 выводит на экран эти числа. Массив обрабатывается двумя другими потоками В и С, работающими параллельно с потоком, создающим массив.При нажатии кнопки «START», считываются данные с полей «N» и «Time», создаются новые объекты потоков и отправляется сигнал на их запуск. интерфейс алгоритм синхронизация массив Перед тем как поток будет выполнять вычисления, он ожидает сигнал об активизации объекта событие.На главной форме располагается группа компонентов для ввода и вывода значений: - Три поля (Thread1, Thread2, Thread3) для вывода значений «Time» количество времени, через которое будут выводиться результаты в текстовые поля (Thread1, Thread2, Thread3).Дан массив Блок схема 3 Вычисление минимального и максимального значения Для вычисления отклонений всех чисел выполним следующие действия: 1. Находим среднее арифметическое; Для вычисления отклонение из данного набора чисел вычитаем среднее арифметическое.TTHREAD абстрактный класс, который допускает создание отдельных потоков выполняющихся в приложении. Создайте потомка класса TTHREAD, чтобы представить выполняемый поток в многопоточном приложении. Множество экземпляров, полученные от класса TTHREAD , делает C Builder многопоточным приложением. // B метод объекта Execute(), вставьте код, который должен выполняться, когда поток выполняется. void __fastcall TMYTHREAD::Execute() Для получения безопасного доступа к управлению свойствами и методами VCL-объектов в потоке предусмотрен метод Synchronize()Синхронизации потоков основывается на использовании событий (event). Объект типа событие может принимать одно из двух состояний: активное или пассивное. Когда событие находится в активном состоянии, его видят многие потоки одновременно.Потоки могут быть запущены и остановлены сколько угодно раз в процессе их выполнения. Поток не будет выполняться до тех пор, пока счетчик не обратиться в ноль, т. е., если вы вызвали пять раз метод Suspend, а затем четыре раза Resume, вам понадобится еще один (пятый) вызов метода Resume для продолжения выполнения потока.g_Event[0] = CREATEEVENT(NULL, FALSE, FALSE, NULL); //Создаем событие g_Event[1] = CREATEEVENT(NULL, FALSE, TRUE, NULL); //Создаем событие RESETEVENT(g_Event[1]); //запрещаем обработки thread1 = new THREADCREATMASSIV(true); //создаем поток в приостановленном состоянии (true) thread1->N = STRTOINT(EN->Text); //Передача параметров потоку thread1->T = STRTOINT(ET->Text); thread1->Resume(); //Возобновляет работу приостановленного потока thread2 = new THREADMINMAX(true); {thread1->Suspend(); //Приостанавливает работу потока thread2->Suspend(); FREEONTERMINATE = true; // освободить занятую потоком память по окончании его работы while (true) {В процессе работы над курсовым проектом были изучены основы многопоточного программирования в Windows с использованием библиотеки визуальных компонентов (VCL) Builder C . В результате было разработано многопоточное приложение которое создает в первом потоке случайный массив А из N целых чисел в диапазоне от-999 до 999 выводит на экран эти числа. Все потоки выводят результаты своей работы в текстовые поля, каждый поток в свое поле.
План
Содержание
Задание
1. Описание общего алгоритма и интерфейса программы
1.1 Описание общего алгоритма
1.2 Интерфейса программы
2. Описание методов решения и алгоритмов задач, реализуемых каждым потоком
2.1 Метод заполнения массива случайными числами
2.2 Метод вычисление длины линии между пространственными точками
2.3 Метод вычисление отклонений всех чисел от округленного среднего арифметического
3. Описание методов создания, уничтожения и синхронизации потоков, примененных в программе
3.1 Создание потоков
3.2 Синхронизация потоков
3.3 Завершение потоков
4. Листинг программы
Заключение
Список использованной литературы
Вывод
В процессе работы над курсовым проектом были изучены основы многопоточного программирования в Windows с использованием библиотеки визуальных компонентов (VCL) Builder C .
1) Создание потоков.
2) Синхронизация потоков.
3) Уничтожение потоков
В результате было разработано многопоточное приложение которое создает в первом потоке случайный массив А из N целых чисел в диапазоне от -999 до 999 выводит на экран эти числа.
Во втором потоке определяется минимальные и максимальные значений
В третьем потоке вычисляется отклонение всех чисел среднего арифметического.
Все потоки выводят результаты своей работы в текстовые поля, каждый поток в свое поле.
Синхронизация потоков осуществлялась на основе событий.
Список литературы
1. Методические указания к курсовой работе по дисциплине «ОПЕРАЦИОННЫЕ СИСТЕМЫ» для студентов 3-го курса специальности 230102 АСОИУ/ составитель: к.т.н., доц. В.Н. Цыганенко.
2. Рихтер Дж. Windows для профессионалов. Создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows / Пер. с англ. - 4-е изд. - Спб.: Питер; М.: Изд-во «Русская редакция»; 2008. - 720 тр.
3. А.Я. Архангельский С Builder 6 Книга 1 Язык C .. БИНОМ 2002 г.
Размещено на .ru
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы