Потоки, управляющие другими потоками
В то время как процессы могут управлять другими процессами, если между ними установлены отношения типа «родитель-потомок», потоки одного процесса считаются равноправными и находятся на одном уровне, независимо от того, кто кого создал. Любой поток, имеющий доступ к идентификационному номеру (id) некоторого другого потока, может отменить, приостановить, возобновить выполнение э того потока либо изменить его приоритет. Отмена основного потока приведет к завершению всех потоков процесса, т.е. к ликвидации процесса. Любые изменения, внесенные в основной поток, могут повлиять на все потоки процесса. При изменении приоритета процесса все его потоки, которые унаследовали этот приоритет, должны также изменить свои приоритеты. Сходства и различия между потоками и процессами сведены в табл. 4.1.
Таблица 4.1. Сходства и различия между потоками и процессами
Сходства
• Оба имеют идентификационный номер (id), состояние, набор регистров, приоритет и привязку
к определенной стратегии планирования
• И поток, и процесс имеют атрибуты, которые описывают их особенности для операционной системы
• Как поток, так и процесс имеют информационные блоки
• Оба разделяют ресурсы с родительским процессом
• Оба функционируют независимо от родительского процесса
• Их создатель может управлять потоком или процессом
• И поток, и процесс могут изменять свои атрибуты
• Оба могут создавать новые ресурсы
• Как поток, так и процесс не имеют доступа к ресурсам другого процесса
Различия
• Потоки разделяют адресное пространство процесса, который их создал; процессы имеют собственное адресное пространство
• Потоки имеют прямой доступ к разделу данных своего процесса; процессы имеют собственную копию раздела данных родительского процесса
• Потоки могут напрямую взаимодействовать
с другими потоками своего процесса; процессы должны использовать специальный механизм межпроцессного взаимодействия для связи с «братскими» процессами
• Потоки почти не требуют системных затратна поддержку процессов требуются значительные затраты системных ресурсов
• Новые потоки создаются легко; новые процессы требуют дублирования родительского процесса
• Потоки могут в значительной степени управлять потоками того же процесса; процессы управляют только сыновними процессами
• Изменения, вносимые в основной поток (отмена, изменение приоритета и т.д.), могут влиять на поведение других потоков процесса; изменения, вносимые в родительский процесс, не влияют на сыновние процессы
Больше книг — больше знаний!
Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ