问大家个问题,增加爬虫爬取速度的方法是并行呢还是并发呢?这两者有什么区别吗?
1
huntzhan 2016-09-03 21:13:53 +08:00
Concurrency is not parallelism: https://blog.golang.org/concurrency-is-not-parallelism
|
2
metrue 2016-09-03 21:34:18 +08:00 via Android
并发是思想,并行是实现。
|
3
visionsmile 2016-09-03 21:39:35 +08:00
摘自 CSAPP :并发是一个通用的概念,指一个同时具有多个活动的系统;而并行,指的是用并发使一个系统运行的更快。并行可以在计算系统的多个抽象层次上运用。
|
4
kindjeff 2016-09-03 21:48:35 +08:00
并行是指物理上的同时发生,并发是指一段时间内的同时发生(逻辑上的同时发生)—— BY 我的操作系统老师。如果这个定义是对的,那么爬虫由你 CPU 的四个核同时处理的四线程是并行;在一个线程等待 IO 时另一个线程占据了资源这两者是并发。
|
5
laoyuan 2016-09-04 10:01:57 +08:00
应该是并发吧, CPU 个数就那么多,但你同时可以发起 100 个网络请求
|
7
petelin 2016-09-04 22:22:23 +08:00 via Android
并行是 赛车,并发是流水线洗车,完了。
|