线程的实现
线程有三种实现方式:1.使用内核线程实现(LWP)–KLT(1:1) 2.使用用户线程实现 (N:1)3.使用用户线程+轻量级进程混合实现(N:M)。
使用内核线程实现
LWP 是Light Weight Process , 不算事内核线程,广义上来说属于用户线程
KLT (Kernel-Level Thread) 内核线程。
1:1 的关系,完全使用轻量级进程,由内核创建调度,会有一定的开销。
使用用户线程完成
狭义上的用户线程(UT),完全在用户空间中,由应用程序完成创建,销毁,调度。开销少,但是实现复杂,容易阻塞进程,不能利用多核。
用户线程加轻量级线程
相比1 ,会有UT和LWP之间的映射,LWP 成为UT 和KLT之间的桥梁,调度可有内核完成。
java线程实现:1:1 or N:M