ВУЗ:
Составители:
Рубрика:
 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
