Системное ПО

Содержание

Слайд 2

Системное ПО Многопоточная работа в Windows Главный поток Создание других потоков

Системное ПО

Многопоточная работа в Windows

Главный поток
Создание других потоков

Приложение запущено

Поток 3

Поток завершился

Вычисления

Вычисления

Принудительное

завершение

Поток 2

Вычисления

Принудительное завершение

При запуске приложения создается главный поток
Любой поток может создавать другие потоки
Потоки могут работать одновременно
При завершении главного потока все остальные потоки принудительно завершаются

Слайд 3

Системное ПО Многопоточная работа в Windows Функция создает новый поток lpStartAddress

Системное ПО

Многопоточная работа в Windows

Функция создает новый поток

lpStartAddress – функция, реализующая

новый поток

lpParameter – адрес, который передается потоку

lpCreationFlags – флаги:
CREATE_SUSPENDED – поток создается остановленным

Слайд 4

Системное ПО Многопоточная работа в Windows Функция, реализующая поток lpParameter –

Системное ПО

Многопоточная работа в Windows

Функция, реализующая поток

lpParameter – адрес, который был

передан функции CreateThread
С его помощью можно передать потоку данные для обработки. Например можно создать для потока массив, структуру, экземпляр класса, и передать потоку соответствующий адрес.
Слайд 5

Системное ПО Пример WaitForSingleObject ждет, пока поток завершится С помощью GetTickCount

Системное ПО

Пример

WaitForSingleObject ждет, пока поток завершится

С помощью GetTickCount засекаем время работы

потока

Создаем новый поток, реализуемый функцией MyThread

Слайд 6

Системное ПО Запуск двух потоков Одна и та же функция может

Системное ПО

Запуск двух потоков

Одна и та же функция может реализовывать несколько

потоков

Вычисления такой же сложности на двух ядрах выполняются быстрее

Пример

Слайд 7

Системное ПО Управление потоками Выполняем одновременно два потока Никакой упорядоченности при выполнении не гарантируется

Системное ПО

Управление потоками

Выполняем одновременно два потока

Никакой упорядоченности при выполнении не гарантируется

Слайд 8

Системное ПО Поток имеет счетчик (suspend count), определяющий состояние потока. Если

Системное ПО

Поток имеет счетчик (suspend count), определяющий состояние потока. Если значение

счетчика >0, поток остановлен

Управление потоками

Уменьшает значение счетчика

Увеличивает значение счетчика