用户级线程和内核级线程

用户级线程

特点

  1. 用户级线程仅存在与用户空间;
  2. 内核并不能感知用户级线程的存在;
  3. 内核的资源分配仍旧是以进程为单位进行的,用户级线程只能在进程内竞争资源。

优点

线程切换的时候开销很低。

缺点

用户线程模型假定线程运行系统最终会重新获得控制权,这可能会受到CPU绑定线程(CPU-bound thread)的阻碍。CPU绑定线程很少执行库函数调用,这样就会阻止线程运行系统重新获得控制权来调度其它的线程。程序员必须要显式地迫使CPU绑定线程在适当的地方放弃对CPU的控制,以避免出现封锁状态。第二个问题是,用户级线程只能共享分配其所在进程的处理器资源。因为线程一次只能运行在一个处理器上,这种约束限制了可用的并行总量。使用线程的主要原因之一就是要利用多处理器工作站的优势,所以仅使用用户级线程本身并不是一种能让人接受的方法。

内核级线程

特点

  1. 线程的创建、撤销和切换等,都需要内核直接实现,即内核了解每一个作为可调度实体的线程;
  2. 内核级线程可以在全系统内进行资源竞争;
  3. 内核为每一个内核支持线程设置了一个线程控制块(TCB),内核根据该控制块,感知线程的存在,并进行控制。

优点

对内核级线程来说,内核了解每一个作为可调度实体的线程,这些线程可以在全系统范围内竞争处理器资源。内核级线程可以利用多处理器的优势。内核级线程的同步和数据共享比整个进程的同步和数据共享的开销要低。

缺点

内核级线程的调度开销可能和进程自身的调度差不多昂贵,内核级线程的管理比用户级线程的管理代价更高。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值