并发和并行,同步和异步

来自CloudWiki
跳转至: 导航搜索

并发和并行

并发(concurrency)和并行(parallelism)是两个相似的概念。

并发是指在一个时间段内发生若干事件的情况。

并行是指在同一时刻发生若干事件的情况。

同步和异步

同步就是并发或并行的各个任务不是独自运行的,任务之间有一定的交替顺序,可能在运行完一个任务得到结果后,另一个任务才会开始运行。就像接力赛跑一样,要拿到交接棒之后下一个选手才可以开始跑。

异步则是并发或并行的各个任务可以独立运行,一个任务的运行不受另一个任务影响,任务之间就像比赛的各个选手在不同的赛道比赛一样,跑步的速度不受其他赛道选手的影响。

下面介绍的多线程、多进程、多协程网络爬虫在进行网页IO的时候都是使用异步方式“同时”获取多个网页,从而加快网页的爬取速度。