进程、线程、超线程技术的类比理解

个人的类比理解:

进程(厨房)、线程(煮饭、炒菜…)、CPU1(小C)、CPU2(小D)、进程资源(厨具、蔬菜、锅)

  • 单核单线程CPU
    在厨房内,小C正在煮着饭,厨房内有各种足够的资源给小C,平时懒散惯的小C,在煮饭的时候,就不想干其他事情,就在那坐着。他本可以边煮饭边炒菜,但他非得等煮好饭了,再去炒菜。(CPU未能充分发挥作用,多数处于空闲状态)
  • 单核多线程CPU
    有一天,小C的这种做法,被他妈妈看到了,然后狠狠地骂了小C一顿,小C这才又勤快点,自己一个人在厨房煮饭的同时又是炒菜。相比原来,像是几个小C在厨房做家务(超线程:一个物理CPU模拟出多个逻辑CPU),但其实只有小C一个人。(前提是在线程不冲突的情况下,CPU充分发挥作用,榨干CPU性能

  • 多进程并发:小C家有两间厨房,A间只能煮饭,B间只能炒菜,可怜的小C只能一会去A间看煮的饭熟了没有,一会又跑回来B间翻下锅里的菜。
    在这里插入图片描述
  • 多进程并行:有一天,小C的弟弟小D刚好回来,但俩兄弟关系又不怎么好,俩人不想待在一起,所以小C在A间煮饭,同时小D在B间炒菜。

  • 多线程并发:小C家的B厨房没了,小C想择菜,又想炒鸡蛋,但这两件事冲突了,小C只好择会菜,再去翻炒一下鸡蛋,怕糊了。(线程产生冲突,但CPU也没处于空闲状态
  • 多线程并行:自从B厨房没了之后,小C觉得以后终会跟小D在同一间厨房做家务,所以就跟小D和好了,俩人终于在同一间厨房做家务,小C依旧煮着大白饭,同时小D也娴熟炒着菜。

超线程技术也称为硬件多线程


并发:是同一时间段,处理多个任务(通过抢占时间片,来获取CPU的使用权)
并行:是同一时间,处理多个任务
发布了17 篇原创文章 · 获赞 30 · 访问量 1813

猜你喜欢

转载自blog.csdn.net/qq_37451250/article/details/104254735