Разработка многопоточных приложений. Рудалев В.Г - 2 стр.

UptoLike

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