美文网首页
多任务、并发和并行

多任务、并发和并行

作者: furuiyang | 来源:发表于2018-04-24 17:05 被阅读0次

多任务

现实生活中的多任务

有很多的场景中的事情是同时进行的,比如开车的时候 手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的;在线听歌(边下载边听歌);老师边讲边操作等等。

使用程序模拟在线听歌

需求:如标题

import time

def download_music():
    '''模拟下载歌曲 需要5秒钟下载完成'''
    for i in range(5):
        time.sleep(1)
        print('正在下载歌曲%d' %(i+1))

def play_music():
    '''迷你歌曲的播放,需要5秒钟完成'''
    for i in range(5):
        time.sleep(1)
        print('正在播放歌曲%d'%(i+1))

def main():
    download_music()
    play_music()

if __name__ == '__main__':
    main()

运行结果

77.png

分析

很显然刚刚的程序并没有完成下载歌曲和播放歌曲同时进行的要求
如果想要实现“下载与播放”同时进行,那么就需要使用一个新知识,叫做:多任务

多任务

什么叫多任务

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

单核cpu如何执行多任务

现在,多核CPU已经非常普及了,但是,即使过去的单核CPU,也可以执行多任务。由于CPU执行代码都是顺序执行的,那么,单核CPU是怎么执行多任务的呢?
答案就是操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样。
真正的并行执行多任务只能在多核CPU上实现,但是,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把很多任务轮流调度到每个核心上执行。

并发和并行

并发:指的是任务数多于cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)。
并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的。

一张并发和并行的解释漫画

并发与并行漫画.jpg 并行与并发任务解释图.png

相关文章

  • 进程、线程

    时间片轮转 并行:真的多任务 并发:假的多任务

  • 多任务

    并行:真的多任务并发:假的多任务 普通解释:并发:交替做不同事情的能力并行:同时做不同事情的能力专业术语:并发:不...

  • 多任务、并发和并行

    多任务 现实生活中的多任务 有很多的场景中的事情是同时进行的,比如开车的时候 手和脚共同来驾驶汽车,再比如唱歌跳舞...

  • python网络爬虫:多任务-进程、线程

    一 、实现多任务的方式 多线程多进程协程多线程+多进程 并行,并发 并行:同时发起同时执行,(4核,4个任务)并发...

  • python实现多任务方式

    什么是多任务?就是操作系统可以同时运行多个任务 多任务的执行方式并发:交替执行,是假的多任务并行:同时执行,是真的...

  • Python多任务(高级编程六)

    并行:真的多任务 cpu大于当前执行的任务并发:假的多任务 cpu小于当前执行的任务 多线程 查看线程数量 thr...

  • 服务器并发设计

    并发与并行 并发技术选型 结构并发 状态并发 集群和负载均衡 并发(Coccurrency)和并行(Paralle...

  • 多任务

    1.多任务:在同一时间,执行多个任务。 2.并发与并行区别 并发:任务轮流交替运行 并行:同一时刻同时运行。 3....

  • 为什么只有你还在相信多任务并行?

    骗局,多任务并行 每天的任务那么多,要是能同时做几个任务就非常棒了。多任务并行由此而生,尽管很多采用多任务并行的人...

  • ObjC-多线程之GCD

    介绍 基本概念 串行和并行 并发和并行 下图描述的就是并发和并行的区别。 同步和异步 函数说明 Dispatch ...

网友评论

      本文标题:多任务、并发和并行

      本文链接:https://www.haomeiwen.com/subject/dxrjlftx.html