多线程的简单理解


一、进程和线程

进程:进程是操作系统分配资源的基本单位,也是最小单位

当我们双击启动某一个软件时,就创建了一个进程实例,如下图中的网易云音乐、QQ等
在这里插入图片描述

线程:进程中的最小执行单位就是线程(注:每个进程中都至少有一个线程)

二、多线程

1.串行和并行

在学习多线程之前,首先我们要明白串行和并行是什么。

串行:从上往下依次顺序执行

在这里插入图片描述
如上图所示,要执行B任务,首先要等A任务完成,整个程序严格按照由上至下的顺序进行。

并行:同时执行

在这里插入图片描述
如上图所示,任务开始后,A,B,C三个任务同时执行,互不干扰。

了解完串行和并行,我们再理解单线程和多线程就容易多了,单线程就相当于串行,多线程就相当于并行,单线程想必不难理解,至于多线程,我们再举个例子说明(这里使用的是火绒),如下图所示:
在这里插入图片描述
我们可以看到火绒中的一些系统工具,点开垃圾清理,这时我们发现,我们还可以使用系统修复、漏洞修复等工具,这些工具互不影响,同时进行,这就是在一个进程(火绒)开启了多个线程(垃圾清理、漏洞修复…)。

2.为什么要使用多线程

简单来说,使用多线程就是为了省时间(不一定比单线程快),我们继续拿火绒举例说明。
当我们用火绒进行垃圾清理的时候,可以很明显的发现,垃圾扫描太耗时间了,那如果我们垃圾清理、病毒查杀、漏洞修复都想执行一次,消耗的时间可想而知。这时,我们使用多线程,同时使用这些功能,不就能极大的节省时间吗,使用多线程的好处就体现出来了。

当然上面我们说的省时间比较片面,更准确的来说,多线程的使用是为了充分利用cpu。举个例子,当我们的代码中存在大量io操作时,那么一旦执行到io时,就不得不阻塞,此时cpu就空闲下来,啥也不干,这样就造成了资源浪费。

3.单核CPU是如何实现多线程的

一颗cpu同时只能执行一项任务,但是cpu通过时间片分配算法给每个任务(线程)分配了执行时间,当任务A时间片执行完毕,cpu寄存器和程序计数器内容会被记录下来,然后切换到任务B,当再一次轮到A时,就会从上次执行到的地方继续开始执行,因为时间片非常的短,给人的感觉就是这些任务在同时执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值