Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
__1.doc
Скачиваний:
23
Добавлен:
13.04.2015
Размер:
288.26 Кб
Скачать

Лабораторная работа №1

«Создание многопоточных приложений в ОС Windows»

Цель: Приобрести навыки написания простого многопоточного приложения в ОС Windows

Порядок выполнения работы:

1) Изучить методические указания к работе.

2) Создать многопоточное приложение, описанное в разделе «Пример создания многопоточного приложения в Delphi».

3)  Изменить текст приложения в соответствии с вариантом задания к лабораторной работе.

4) Оформить отчет.

Содержание отчета:

  1. Наименование и номер лабораторной работы.

  2. Задание, согласно Вашему варианту.

  3. Текст программы.

  4. Результат работы программы.

  5. Вывод на основании полученных результатов.

Теоретические положения:

Концепция потоков

Поток (thread)— это объект операционной системы, который представляет собой отдельный путь выполнения программы внутри определенного процесса. Каждое приложение Win32 имеет, по крайней мере, один поток, обычно называемыйпервич­ным, илиглавным, но приложения имеют право создавать дополнительные потоки, предназначенные для выполнения других задач.

С помощью потоков реализуются средства одновременного выполнения несколь­ких различных подпрограмм. Конечно, если компьютер оснащен только одним про­цессором, то о настоящей одновременности работы двух потоков говорить не прихо­дится. Но когда для обработки каждого потока операционная система поочередно выделяет определенное время (измеряемое в мельчайших долях секунды), создается впечатление одновременной работы нескольких приложений.

Потоки никогда не поддерживались в среде 16-разрядной Windows. Это означает, что ни одна 32-разрядная программа Delphi, написанная с использованием потоков, никогда не будет совместимой с Delphi 1. Данный момент обязательно нужно учитывать при разработ­ке приложений, предназначенных для работы на обеих платформах.

Типы многозадачности

Понятие потока во многом отличается от многозадачности, поддерживаемой в среде 16-разрядной Windows. Возможно, Вам приходилось слышать, что Win32 называ­ют операционной системой с приоритетной (preemptive), иливытесняющей, многозадачно­стью, а Windows 3.1 — средой скооперативной многозадачностью (cooperative multitasking).

В чем же разница? В среде приоритетной многозадачности управление возложено на операционную систему — именно она отвечает за то, какой поток должен выпол­няться в данный момент времени (и обладать более высоким приоритетом). Когда первый поток приостанавливается системой ради передачи второму потоку несколь­ких циклов работы процессора, то о первом потоке говорят, что он выгружен. И если к тому же окажется, что первый поток выполняет бесконечный цикл, то, как правило, это не приводит к трагической ситуации, поскольку операционная система будет про­должать выделение процессорного времени для всех других потоков.

В среде Windows 3.1 ответственность за возвращение управления операционной системе по завершении выполнения приложения лежит целиком на разработчике. Поэтому, когда приложению не удается корректно завершить работу и вернуть управление операционной системе, кажется, что операционная система "зависает" — все хорошо знакомы с такой печальной ситуацией. Если вдуматься, то это может пока­заться даже забавным — устойчивость работы всей системы 16-разрядной Windows полностью зависит от поведения всех ее приложений, которые должны самостоятель­но защитить себя от попадания в бесконечные циклы, замкнутую цепь рекурсии и дру­гие неприятные ситуации. А поскольку все приложения для достижения корректной работы системы должны работать согласованно, этот тип многозадачности называет­сякооперативным.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]