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

(2,3) – осуществляются ядром операционной системы (планировщиком)

(4) – продолжение работы невозможно

§ Для продолжения работы требуется наступление какого-либо события

§ Поток затребовал недоступный в данный момент ресурс

§ Поток переводится в состояние ожидания ядром операционной системы во время обработки системного вызова

§ Поток заблокирован внешним по отношению к нему вызовом

(5) – проводится ядром ОС в момент выполнения условия ожидания.

Постановка задачи планирования

Потокам для выполнения нужен ЦП

Если потоков боле, чем процессор

Вытесняющие алгоритмы планирования….

Выбирают поток и позволяют ему работать некоторое максимально возможное фиксированное время. Если к концу заданного интервала времени поток все еще работает, он приостанавливается, и управление переходит к другому потоку (если существует поток, готовый к исполнению).

Недостатки многопоточного программирования

Велики накладные расходы

§ На создание и обслуживание потока ОС требуется память и время

§ Создание и уничтожение потока – это достаточно дорогие операции, поэтому излишнее увлечение много поточностью может привести к потере эффективности работы

Реализация многопоточного приложения требует усложнения алгоритма

Классы, поддерживавшие многопоточное программирование, определены в пространстве имен System.Threading

Основной класс пространства имен – класс Thread

Имя Описание
Sleep() Приостанавливает текущий поток на заданное время
IsAlive Возвращает True, если поток запущен
IsBackground True, если поток – «фоновый»
Join() Блокирует вызывающий поток до тех пор, пока указанный поток (тот,, для которого вызван Join()) не завершится
Start() Инструктирует CLR запустить поток как можно скорее

Два типа потоков

Потоки переднего плана (приоритетные)

Данный тип обеспечивают предохранение текущего приложения от завершения – среда CLR не остановит приложение до тех пор, пока не будут завершены все приоритетные потоки.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: