由于单独使用用户线程的话,虽然不存在用户线程和内核线程之间的切换,但是用户线程自己实现线程的切换,阻塞和唤醒的程序会比较复杂,甚至不可能实现。而如果单独使用内核线程的话,他的实现原理是通过轻量级进程(用户线程)来完成将具体的线程映射到操作系统上面,但是由于完成使用内核线程会消耗内核资源,代价比较大,所以使用的也比较少。目前使用的是用户线程和内核线程混合使用的线程模型,轻量级进程作为用户线程和内核线程之间的桥梁,但是此时的轻量级进程和用户线程不是1:1的关系。
由于单独使用用户线程的话,虽然不存在用户线程和内核线程之间的切换,但是用户线程自己实现线程的切换,阻塞和唤醒的程序会比较复杂,甚至不可能实现。而如果单独使用内核线程的话,他的实现原理是通过轻量级进程(用户线程)来完成将具体的线程映射到操作系统上面,但是由于完成使用内核线程会消耗内核资源,代价比较大,所以使用的也比较少。目前使用的是用户线程和内核线程混合使用的线程模型,轻量级进程作为用户线程和内核线程之间的桥梁,但是此时的轻量级进程和用户线程不是1:1的关系。