一篇文章让你彻底了解多线程的本质,史上最简单(一)

前言:
还是那句话,网上的多线程的讲解形形色色,大多数都是照搬概念和定义,没有讲解为什出现这个东西,也没有简单通俗的讲出多线程真正含义,虽然我的文章有些啰嗦,但是这些啰嗦的语言让你真正理解线程的本质(牛逼吹大了)。
为啥这里不讲进程,因为真正干活的是线程而不是进程,就如同公司和员工一般,最终活还是交给员工来干对吧,所以分析线程就知道操作系统执行指令的真正奥义。
1.什么是线程?
估计很多人不理解,或者不能通俗的理解,可以这么理解,计算机为了执行指令必须需要一个东西来承载,这个就是线程。线程就是计算机用来执行指令最小单位。而指令是由啥执行的?cpu呀,所以线程也是由cpu调度的。
2.什么是多线程,为啥需要多线程?
我们分两种情况讲解:
单核cpu:
多线程的目的为了同时处理任务,一开始的时候计算器没有发达,只有单核cpu,但是单核cpu的时候操作系统已经出现多线的概念了,是否有这个必要?
我们试想一下,如果没有多线程,那么我们交给计算器的指令,只能同步而且顺序的执行,就是执行完当前计算,再处理下一个计算,无法同时执行多个指令。但是执行指令的时间和难度不一样,有些指令的时间长(如io读写),有写指令短(如1+1)。我们考试做卷子的时候都知道有个先易后难,就是先把简单题做了,再做难的。于是人们就想,有没有办法不一直等,让我们给cpu的每个任务都有执行的机会,还真有,这就是时间片轮转。就是让cpu先执行一下这个线程指令,然后又跑去执行另一个线程的指令,无论你是简单还是复杂的指令都会得到执行权限,所以时间短的自然而言先解决了,正是由于时间片轮转,让多个线程都得到执行指令的机会,也即多个进程执行指令的机会(开篇就讲了呀)。所以单核cpu也具有多任务执行的能力,因为轮转的太快,让人错觉在同时执行。
多核cpu:
多核cpu跟单核CPU多线的概念本质区别就是,我用人来比喻一下,单核一个人干活(把每个活轮流干),而多核是多个人干活(同时干),所以多核也是实现真正意义上多线程同时执行的。如果做到多个人同时干活呢?其实这跟我分配工作一样,我们拆解任务,拆解完任务之后交给线程去执行,而线程也是拿到指令之后在交给cpu去执行的,也可以理解为cpu从线程里面获取指令执行,所以每个cpu都有对应的线程去执行。这样就做到同时并发处理工作了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值