Java线程的实现

实现线程主要有三种方式:使用内核线程实现(1:1实现),使用用户线程实现(1:N实现),使用用户线程加轻量级进程混合实现(N:M实现)

1、内核线程实现

使用内核线程实现的方式也称为1:1实现。内核线程(kernel-Level Thread,KLT)就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操纵【调度器】(Scheduler)对线程进行调度,并负责将线程的任务映射到各个处理器上。

而程序一般不会直接使用内核线程,而是使用内核线程的一种高级接口:轻量级进程(Light Weight Process,LWP),轻量级进程就是我们通常意义上说的线程。由于每个轻量级进程都需要一个内核线程支持,就构成一对一的线程模型。

由于内核线程的支持,每个轻量级进程都成为一个独立的调度单元,即使其中某一个轻量级进程在系统调用中被阻塞了,也不会影响进程的运行。

但由于是基于内核线程实现的,所以各种线程操作都需要进行系统调用,而系统调用的代价较高,需要在用户态和内核态之间来回切换。其次,每个轻量级进程是由内核线程支持的,需要消耗一定的内核资源。

2、用户线程实现

使用用户线程实现的方式被称为1:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值