Thready se daji delat v userlandu (tzv. user threads nebo library threads), kernel je potom "nevidi" a vsechny thready, ktere bezi v ramci procesu jsou z hlediska kernelu 1 proces s 1 threadem. O veskery scheduling a "paralelizaci" se stara sam ten proces (knihovna).
Jina moznost je, ze prave uzivatel vidi jenom 1 thread, ale to, co ten thread dela, je ve skutecnosti v kernelu naimplementovano thready nekolika, muze se tak resit napriklad "asynchronni" komunikace ...
Dalsi moznost je takovy hybrid, kdy uzivatel vidi X threadu a kernel to obsluhuje Y thready. Vetsinou je to tak, ze tech uzivatelskych je vice a nektere z nich jsou "library threads" a spolecne bezi na ucet jednoho threadu v kernelu. O tom, jaky thread bude jak bezet obvykle rozhoduje programator tim, jak (jakym volanim) ho vytvori. To je ten M:N model a umi to napr. Solaris.