进程池 线程池 协程 UTC并发
一、进程、线程池 #为什么用 开进程开线程都需要消耗资源消耗时间的,只不过两者比较的情况线程消耗的资源比较少 在成千上万个任务需要被执行的时候,我们可以去创建成千上万个进程么? 就算你比较二,建了无数个进程线程,系统敢让你执行么?除非它自己不要命了,辛辛苦苦创建出来还不能执行,气不气? 我们需要一个池子,根据计算机状况最大限度的限制进程线程数量,在计算机能够承受范围之内最大限度的利用计算机 #什么是池? (硬件的发展跟不上软件的速度) 池其实是降低了程序的运行效率 但是保证了计算机硬件的安全 最大限度的限制进程线程数量,在保证计算机硬件安全的情况下最大限度的利用计算机 #提交任务的方式: 同步: 提交任务之后 原地等待任务的返回结果 期间不做任何事 异步: 提交任务之后 不等待任务的返回结果(异步的结果怎么拿???) 直接执行下一行代码 异步回调机制 :当异步提交的任务有返回结果之后,会自动触发回调函数的执行 #创建的特点 池子中创建的进程/线程创建一次就不会再创建了 至始至终用的都是最初的那几个 这样的话节省了反复开辟进程/线程的资源 1.进程池 池中默认进程数: cpu个数 from concurrent.futures import ProcessPoolExecutor import time import os