Пользовательские нити
Наконец, к третьему классу
легковесных процессов относятся
пользовательские нити. Они
называются пользовательскими,
поскольку реализуются не ядром ОС,
а с помощью специальной библиотеки
функций (поэтому, например, в ОС Mach
их называют C-Threads). Это тоже очень
старая идея, к использованию
которой неоднократно прибегали все
опытные программисты (здесь уже
даже не важно, в среде какой
операционной системы выполняется
программа). Суть идеи состоит в том,
что вся программа пользователя
строится в виде набора сопрограмм
(coroutine), которые выполняются под
управлением общего монитора.
Естественно, что в мониторе
поддерживаются контексты всех
сопрограмм, но и монитор, и
сопрограммы являются
составляющими одного
пользовательского процесса,
которому соответствует одна
ядерная нить. Конечно, с
использованием пользовательских
нитей невозможно достичь реального
распараллеливания программы.
Единственный реальный эффект,
которого можно добиться, состоит в
возможности распараллеливания
обменов при использовании
асинхронного режима системных
вызовов. Как считают некоторые
специалисты (к числу которых не
относится автор этой части курса),
основное достоинство
использования пользовательских
нитей состоит в лучшей
структуризации программы.
[Предыдущая глава]
[Оглавление] [Следующая
глава]
|