(并行+并发))
p = ProcessPoolExecutor() # 默认不写,进程池里面的进程数与cpu个数相等
for i in range(20):
p.submit...回调处理非IO
浏览器工作原理, 向服务端发送一个请求,服务端验证你的请求,如果正确,给你的浏览器返回一个文件
浏览器接收到文件,将文件里面的代码渲染成你看到的漂亮美丽的模样.....
1 在开一个线程进程池,并发并行的处理,开销大.
2 将原来的任务扩大,以空间换效率.
3 线程池设置4个线程, 异步发起10个任务,每个任务是通过网页获取源码+数据分析...多线程的并发: 3个线程处理10个任务,如果线程1处理的这个任务,遇到阻塞,cpu被操作系统切换到另一个线程,
一个线程能否并发的处理任务??? 一个线程处理三个任务....工作中:
一般在工作中我们都是进程+线程+协程的方式来实现并发,以达到最好的并发效果,如果是4核的cpu,一般起5个进程,每个进程中20个线程(5倍cpu数量),每个线程可以起500个协程,大规模爬取页面的时候