Термин «потоки ядра» может использоваться для обозначения реальных потоков, которые полностью выполняются в пространстве ядра, или он может ссылаться на потоки пространства пользователя, запланированные ядром. Термин «поддерживаемые ядром» потоки означают последние, потоки, которые выполняются в пространстве пользователя, но облегчаются ядром, что обычно означает, что ядро планирует их.
«Потоки уровня пользователя» обычно означают потоки, видимые в пространстве пользователя. То есть то, что вы создаете, когда вызываете функцию «создания потока» вашего стандарта потоков. Обычно термин «поток пользовательского уровня» используется для обозначения потока, созданного кодом приложения, независимо от того, как он реализован системой. Это может быть чистый поток пользовательского пространства, практически не поддерживающий ядро, или поток, запланированный ядром.
Стандарт pthreads может быть реализован как чистые потоки пользовательского пространства (где ядро планирует процесс, а процесс планирует потоки), поддерживаемые ядром потоки (где ядро планирует потоки напрямую) или гибридный подход (где ядро планирует поток на уровне ядра, который затем в пользовательском пространстве планирует поток на уровне пользователя). Стандарт не требует каких-либо конкретных средств реализации. Наиболее распространенной реализацией является отображение 1-в-1, где каждый поток пользовательского уровня имеет соответствующий поток, который запланирован ядром.