Many-to-one maps many user-level threads to a single kernel thread. One-to-one maps one user-level thread to one kernel thread. Many-to-many maps many user-level threads to many kernel threads.
Many-to-one is managed by a stream library in user space, so it is efficient; but the whole process will be blocked if the thread calls a blocking system call. In addition, since only one thread can access the kernel at a time, multiple threads cannot run in parallel on multiprocessors.
"--" concurrency, "--" ; . , , . , .
" " . concurrency, true concurrency , . , , . , .