ВУЗ:
Составители:
Рубрика:
2
В методических указаниях описываются основы создания многопоточных
приложений для операционных систем Windows 95/98/NT/2000. Изложена мето -
дика использования стандартных средств интерфейса прикладного программиро -
вания API Win32 и специализированных классов среды программирования Delphi.
Методические указания рассчитаны на студентов 3 курса д . о . ф -та ПММ,
имеющих начальное представление об архитектуре Win32 и навыки программи-
рования в среде Delphi 4.0 – 5.0.
Рецензент: доцент кафедры МО ЭВМ Ю .Т.Свиридов
Содержание
1. Основные понятия………………………………………………2
2. Создание потоков средствами API……………………………..4
3. Класс TThread……………………………………………………7
4. Синхронизация потоков……………………………………..… 12
5. Задания для самостоятельной работы………………………...18
Литература…………………………………………………………19
1. Основные понятия
Поток (Thread, нить выполнения) – исполняемая сущность процесса . Про-
цесс включает в себя загруженную в оперативную память исполняемую програм -
му, виртуальное адресное пространство, системные и пользовательские ресурсы ,
выделенные программе, и один или несколько потоков (нитей) выполнения . В
каждом процессе всегда неявно (незаметно для программиста и независимо от его
воли) присутствует один основной поток приложения, остальные потоки при не-
обходимости программист пишет сам . Потоки выполняются параллельно в вирту-
альном адресном пространстве породившего их процесса и разделяют ресурсы
этого процесса. Единицей многозадачности в Windows является поток, а не про -
цесс. Поток можно рассматривать как автономно работающую и управляемую
часть приложения , а многопоточность приложения – как многозадачность внутри
программы . Среди причин , побуждающих создавать именно многопоточные при-
ложения , прежде всего следует выделить следующие.
Повышение надежности программы. Зацикливание основного потока
приложения полностью блокирует его работу, при этом приложение может быть
завершено лишь при помощи диспетчера задач (Task Manager), что , как правило,
сопровождается потерей несохраненных данных. Поэтому «неблагонадежные»
вычислительные фрагменты рекомендуется переносить из основного потока в от-
дельные дополнительные потоки, предусмотрев возможность их досрочного за-
вершения (см . лаб . работы 1,2).
В методических указаниях оп ис ы ваю тся основы создания мног оп оточны х п рилож ений для оп ерационны х систем Windows 95/98/NT/2000. И злож енамето- дикаис п ользования стандартны х средств интерф ейс ап рикладног о п рог раммиро- вания API Win32 исп ециализированны х классов среды п рог раммирования Delphi. М етодические указания рас считаны настудентов 3 курсад.о. ф -таП М М , имею щ их начальное п редставление об архитектуре Win32 инавы кип рог рамми- рования в средеDelphi 4.0 – 5.0. Рецензент: доценткаф едры М О Э В М Ю .Т .Свиридов С оде р ж ан и е 1. О сновны еп онятия… … … … … … … … … … … … … … … … … … 2 2. Созданиеп отоков средствамиAPI… … … … … … … … … … … ..4 3. К лассTThread… … … … … … … … … … … … … … … … … … … … 7 4. Синхронизация п отоков… … … … … … … … … … … … … … ..… 12 5. Задания для самос тоятельной раб оты … … … … … … … … … ...18 Литература… … … … … … … … … … … … … … … … … … … … … … 19 1. О сн овн ы епон яти я П от ок (Thread, н и т ь выполн ен и я) – исп олняемая сущ ность пр оцесса . П р о- цесс вклю чаетв себ я загруж енную в оп еративную п амять исп олняемую п рог рам- му, виртуальное адресное п ространство, системны е ип ользовательские ресурсы , вы деленны е п рог рамме, и один илинесколько пот оков (н и т ей) вы п олнения. В каж дом п роцессевсег данеявно (незаметно для п рог раммистаинезависимо отег о воли) п рис утствуетодин осн овн ой пот ок пр и лож ен и я, остальны е п отокип рине- об ходимостип рог раммистп иш етсам. П отокивы п олняю тся п араллельно в вирту- альном адресном п рос транстве п ородивш ег о их п роцессаи разделяю т ресурсы этог о п роцесса. Е диницей мног озадачностив Windows является п оток, ане п ро- цесс. П оток мож но рассматривать как автономно раб отаю щ ую и уп равляемую часть п рилож ения, амног оп оточнос ть п рилож ения – как мног озадачность внутри п рог раммы . Средип ричин, п об уж даю щ их создавать именно мног оп оточны еп ри- лож ения, п реж девсег о следуетвы делить следую щ ие. П овы ш е н и ен аде ж н ости пр огр ам м ы . Зацикливание основног о п отока п рилож ения п олностью б локирует ег о раб оту, п риэтом п рилож ение мож ет б ы ть заверш ено лиш ь п рип омощ идисп етчеразадач (Task Manager), что, как п равило, соп ровож дается п отерей нес охраненны х данны х. П оэтому « неб лагонадеж ны е» вы числительны еф рагменты рекомендуется п еренос ить изосновног о п отокав от- дельны е доп олнительны е п отоки, п редусмотрев возмож ность их досрочног о за- верш ения (см. лаб .раб оты 1,2). 2