Паскаль
Ниже перечислены различные модели многопоточности.
Модель «
многие к одному» В модели «многие к одному» многие ступени пользовательского уровня отображаются в один поток ядра. Это эффективно, поскольку реализуется в пользовательском пространстве. Процесс, использующий эту модель, будет быть полностью заблокированным, если поток выполняет системный вызов блокировки. Только один поток может получить доступ к ядру одновременно, поэтому его нельзя запускать параллельно на многопроцессорном компьютере.
Модель "один к одному"
Рисунок: Модель "
один к одному"
В этой модели каждый пользовательский поток отображается в поток ядра. Он обеспечивает больший параллелизм, поскольку позволяет другому потоку выполняться, когда поток выполняет блокирующий системный вызов. Это облегчает параллелизм в мультипроцессоре. Каждому пользовательскому потоку требуется поток ядра, что может повлиять на производительность системы. Создание потоков в этой модели ограничено определенным количеством. Эта модель используется в Windows NT, Windows 2000 и OS / 2.
Модель "человек ко многим"
Эта модель мультиплексирует множество потоков пользовательского уровня в меньшее или равное количество потоков ядра. Количество потоков ядра может быть определено либо для конкретного приложения, либо для конкретной машины. Пользователь может создать любое количество пользовательских потоков, и соответствующие потоки ядра могут работать параллельно на многопроцессорном компьютере. Когда поток выполняет системный вызов блокировки, ядро может выполнить другой поток. Он используется Solaris 2, IRIX и Tru64.