【多任务线程高级day02】多任务的概念

多任务的概念

什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运行。还有很多任务悄悄地在后台同时运行着,只是桌面上没有显示而已。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z9qcMve8-1579684240939)(../Images/05day/Snip20160829_5.png)]

现在,多核CPU已经非常普及了,但是,即使过去的单核CPU,也可以执行多任务。由于CPU执行代码都是顺序执行的,那么,单核CPU是怎么执行多任务的呢?

答案就是操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样。

真正的并行执行多任务只能在多核CPU上实现,但是,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把很多任务轮流调度到每个核心上执行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R4kSu5uW-1579684240941)(../Images/05day/34251_709814206369639931801b3979956.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f6yJloLM-1579684240942)(../Images/05day/1435067025249AE4OENST3.gif)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H6qeFNX5-1579684240942)(../Images/05day/14350675680692AFBGLEOG.gif)]

注意:

  • 并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)
  • 并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的
发布了120 篇原创文章 · 获赞 19 · 访问量 4126

猜你喜欢

转载自blog.csdn.net/qq_35456045/article/details/104071281
今日推荐