线程(二)

多线程编程的优点

  • 响应度高:如果部分进程被阻止,可能允许继续执行,这对用户界面尤其重要
  • 资源共享:线程共享进程资源,比共享内存或消息传递更容易
  • 经济:线程切换比进程创建更便宜,开销比上下文切换更低
  • 多处理器体系结构的利用:进程可以利用多核架构,每个核有一个或两个线程

多线程模型
多对一模型
在这里插入图片描述
多个用户级线程对应一个内核级线程,目前很少有系统使用这种模式。

  • 优点:线程管理在用户空间,不需要切换到内核态,消耗的资源相对较少,效率较高
  • 缺点:当一个线程进行阻塞的时候,对应内核态线程的阻塞,这个时候整个进程都会被阻塞掉;多个线程无法并行的运行在多处理机上

一对一模型
在这里插入图片描述
每一个用户级线程对应一个内核级线程

  • 优点:当一个线程进行阻塞之后,其他的线程可以继续运行,不会造成进程的阻塞,并发能力强,可以在多处理器上并行
  • 缺点:创建线程的开销比较大,因为对于每一个线程都要创建一个内核级线程一一对应

多对多模型
在这里插入图片描述
允许将多个用户级线程映射到多个内核线程。
允许操作系统创建足够数量的内核线程。

线程库
线程库为程序员提供创建和管理线程的API
有两种方法
一,在用户空间中提供一个没有内核支持的库
二,执行一个由操作系统直接支持的内核级的库

Pthreads
可以作为用户级或内核级提供,用于线程创建和同步的POSIX标准

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值