线程的概念

在这里插入图片描述

引入线程的原因

一个程序的一次执行成为进程, 但是该程序可能要实现多种功能, 例如qq边和别人打电话边刷朋友圈
而传统的进程只能串行的执行一系列程序, 为此引入 线程, 以增加并发度
在这里插入图片描述

引入线程后有哪些变化

以前CPU为进程工作, 进程是最小单位
引入线程后, 线程成为了最小工作单位
在这里插入图片描述
引入进程后, 进程 只作为 除了CPU以外的系统资源的分配单元
例如麦克风, 打印机等, 都是被系统分配给某个进程, 而不是某个线程
再如内存地址空间, 也是被分配给进程

但是CPU之前提到了有了线程之后是被分给线程的
所以进程是 除了CPU以外的系统资源的分配的单元

可以理解为某个程序执行过程中产生的各种任务被放入不同的线程以等待处理机执行
资源以进程为单位进行分配, CPU以线程为单位进行任务处理
在这里插入图片描述

线程的属性

在这里插入图片描述

  1. 各个线程占用不同的cpu
对于现代的CPU, 通常说几核几线程, 
核代表的相当于处理机有多少个
线程代表的可以同时执行多少个**线程数量**

一般情况下, 有多少个处理机就可以同时执行多少个**任务线程**

但是我们经常也有听到12核16线程这种说法
这其实是一种超线程技术, 对于某些核心, 
看上去就像将其分成两部分一样地可以同时处理两个任务线程

注意以上 **线程数量**与 **任务线程**这俩名字是我瞎编的, 为的是区分CPU所说的线程与操作系统中处理一些列指令的线程, 
如果要了解更多关于超线程的技术, emm我也不知道怎么办, 百度百度, 找找书看吧hhh
  1. 线程id与线程控制块TCB
    类似于进程的PCB

  2. 线程几乎不拥有系统资源
    线程拥有的只是处理机, 其他系统资源按照进程分配

  3. 进程与进程间切换开销 对比 线程与线程间切换开销(同个进程)
    之前讲过进程与进程切换时需要对该进程的一些资源进行保存,
    然后再载入新进程的资源
    而同一个进程间的线程切换则不需要, 因为仍然是之前的那个进程
    如果是不同进程的线程切换, 其实仍然属于进程与进程之间的切换, 只不过最终的切换对象是不同进程中的线程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BetterChinglish

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值