线程与进程的理解
进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位.
线程:是cpu调度最小单位,单个进程中执行中每个任务就是一个线程。线程也是进程中执行运算的最小单位。
而对于python的多线程与多进程的理解可以参考链接文章→python的多线程与多进程
python多线程由于GIL锁(全局解释器锁)的存在,python程序只能在一个处理器上运行,无法真正的实现多线程执行任务。所以接下来重点介绍多进程。
多进程multiprocessing.Pool
进程池Pool 提供的功能有嗲类似于列表和函数式编程操作(映射-归约)提供的功能。
Pool(procesess) 创建工作进程池,process为要创建的进程数,如果省略此参数,将使用cpu_count()值。
Pool.apply(func,(args,(kwargs))) 在一个进程池中执行函数func(*args,**kwargs),然后返回结果。此操作不会在所有池工作进程中并行执行func函数。如果要使用不同参数并发执行func函数,必须从不同的线程调研Pool.appy()函数或者使用Pool.appy_async()函数。