Il termine "thread del kernel" può essere usato per riferirsi a thread reali che girano interamente nello spazio del kernel o può riferirsi a thread dello spazio utente pianificati dal kernel. Il termine "thread supportati dal kernel" significa che questi ultimi, thread che girano nello spazio utente ma sono facilitati dal kernel, il che di solito significa che il kernel li programma.
"Thread a livello utente" di solito significa thread visibili allo spazio utente. Cioè, ciò che crei quando chiami la funzione "crea thread" dello standard di threading. In generale, il termine "thread a livello utente" viene utilizzato per indicare un thread creato dal codice dell'applicazione indipendentemente da come è implementato dal sistema. Potrebbe trattarsi di un puro thread di spazio utente con supporto del kernel minimo o nullo o potrebbe essere un thread programmato dal kernel.
Lo standard pthreads può essere implementato come puro thread di user-space (dove il kernel pianifica il processo e il processo pianifica i thread), thread supportati dal kernel (dove il kernel pianifica i thread direttamente) o un approccio ibrido (dove il kernel pianifica un thread a livello di kernel che quindi, nello spazio utente, pianifica un thread a livello utente). Lo standard non richiede alcun particolare mezzo di implementazione. L'implementazione più comune è la mappatura 1-a-1, in cui ogni thread a livello utente ha un thread corrispondente pianificato dal kernel.