Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Робота з потоками в ОС Windows

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут післядипломної освіти
Факультет:
Не вказано
Кафедра:
Кафедра програмного забезпечення

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Інші

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" ІНСТИТУТ ПІСЛЯДИПЛОМНОЇ ОСВІТИ КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ / ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ №2 на тему: "Робота з потоками в ОС Windows" Мета роботи: Ознайомитися з багатопоточністю в ОС Windows. Навчитися працювати з потока-ми, використовуючи WinAPI-функції. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ Потоком (або завданням) називається фрагмент коду програми, який може виконуватися процесором автономно і незалежно від інших частин коду цього ж додатка, але в рамках одного процесу. Як правило , код потоку представляється в програмі у вигляді окремої процедури (функції). Процесорний час надається кожному потоку незалежно від інших потоків даного процесу і потоків інших процесів . Коли один з потоків процесу блокується (наприклад , для очікування завершення операції вводу-виводу) , активізується інший потік . Таким чином , роздільне виконання потоків дає можливість скористатися перевагами мультипрограммной обробки , і в багатьох випадках скоротити загальний час виконання процесу за рахунок скорочення простоїв процесора. Потік (thread) в ОС Windows є основним елементом виконання будь-якої програми . Процес Windows може містити кілька незалежних потоків, які поділяють загальний адресний простір та інші ресурси процесу (у простому випадку додаток складається з одного єдиного потоку). Водночас потік є самостійним елементом виконання всередині процесу . Кожен з потоків може мати власний стек і свій рівень пріоритету. Як відомо , створення процесу в ОС Windows проводиться за допомогою системної функції CreateProcess . Виконання цієї функції призводить до породження потоку , який називають головним потоком процесу (T0 , рис. 1) . Головний потік присутній в будь-якому процесі і часто залишається єдиним . Решта потоки (T1 , T2 і т.д.) можуть створюватися в коді головного потоку по розсуду програміста за допомогою спеціальної функції WIN32 API CreateThread . Потік , який виконав функцію CreateThread називають батьківським потоком по відношенню до створеного ним , а створений потік - дочірнім потоком. Функція CreateThread повертає значення дескриптора створеного потоку. Це значення використовується потім для управління створеним потоком з боку батьківського потоку .    Рис.1 Функції управління процесами і потоками У Win32 API пропонується цілий ряд функцій для роботи з потоками , включаючи : • CreateThread - створити і запустити потік ; • ExitThread - завершити роботу і знищити потік з ініціативи самого потоку ; • TerminateThread - завершити роботу і знищити дочірній потік ; • SuspendThread - призупинити ( блокувати ) виконання дочірнього потоку ( потік не отримує квантів процесора ) ; • ResumeThread - відновити виконання раніше припиненого дочірнього потоку ( деблокування ) ; • Sleep - призупинити виконання потоку на заданий час ; • SetThreadPriority - змінити пріоритет дочірнього потоку ; • GetThreadPriority - визначити пріоритет дочірнього потоку ; • GetExitCodeThread - отримати код завершення дочірнього потоку ; • WaitForMultipleObjects - призупинити ( блокувати ) виконання батьківського потоку до завершення одного або декількох дочірніх потоків . Зверніть увагу , що більша частина функцій доступна тільки з батьківського потоку по відношенню до породженому їм дочірньому і тільки три з них ( CreateThread , ExitThread і Sleep ) можуть бути викликані безпосередньо з дочірнього потоку . Детальний опис найбільш важливих функцій представлено в п.2. Слід зазначити , що створення багатопоточних програм часто пов'язано з необхідністю координації робіт , виконуваних окремими потоками , особливо , якщо потоки використовують загальні ( що розділяються ) ресурси (наприклад , змінні або файли). У цьому випадку , щоб уникнути помилок у значеннях поділюваних даних , необхідно використовувати спеціальні системні засоби взаимоисключения і синхронізації потоків ( критичні секції , семафори , м'ютекси тощо). Ці засоби дозволяють описати регламент , відповідно до якого по...
Антиботан аватар за замовчуванням

11.12.2017 10:12

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини