python进程池和线程池,python线程池原理
本文主要介绍Python进程池的基本概念。当创建的子流程数量较少时,可以直接使用多处理流程中的流程动态形成所需的流程。下面详细介绍Python线程池的概念,有需要的伙伴可以参考一下。
00-1010一、python进程池二。如何使用进程池?apply()apply _ async Map()Map _ async()close()终端()Join () III。代码清单IV。进程池中的进程和一般的进程有什么区别?前言:
创建进程池可以形象地理解为创建并行管道,只需要创建一次。对于处理接收到的任务,不使用进程池。浪费时间。
中国没有进程,除了python使用线程池语言,是进程的其他线程池(而进程是执行业务的其他任务)。python的原因(因为Cython的概念),线程编程的不同并行性,把线程池的概念转移到进程上,命名为进程池。
目录
当创建的子流程数量较少时,可以直接使用多处理流程中的流程来动态形成所需的流程。
如果手动创建数百甚至数千个流程,可以为多流程模块提供池方法。
1.初始化池时,可以指定进程的数量。
2.当一个新的请求提交到池中时
如果池未满,则通过创建新的进程来执行请求;如果池中的进程到达了指定的任务,那么直到一个进程完成,之前请求的进程将被用来执行新的任务,这需要多长时间?
一、python进程池
二、进程池如何使用?
函数原型:应用(func,args=()[,kwds={}]])
该函数传递不定参数,与python中的application函数一致,会阻止主进程完成函数执行(不推荐,3.x以后不会再使用)
申请()
函数原型:apply _ async(func[,args=()[,kwds={}[,callback=None]])
与应用程序一致,但不被应用程序支持。支持结果返回后,反对。
apply_async
函数原型:映射(func,iterable[,chunksize=None])
类中映射表的行为必须是基本相同的,它将使用第二个过程返回与前一个结果:
但在实际使用中,参数是一个调用,需要在整个应用中注意,程序会运行子进程。
地图()
函数原型:映射_异步(func,iterable[,chunksize[,callback]])
它与地图相符,但没有被扣住。
map_async()
关闭进程池,不再接受新任务。
close()
结束工作进程并停止处理未处理的任务。
终端()
主进程停止等待子进程退出,加入方法应该关闭或终止。
加入()
#导入相关的多重处理包
导入多重处理
#创建具有CPU核心数量的进程池
池=多处理。pool(processes=multi processing . CPU _ count())
For i in range (100 ): ##刹车并等待当前任务# pool.apply(func=pow,args=(i,2))的进程结束
#不要延迟当前任务的进程结束
pool.apply_async(func=pow,args=(i,2))
# #将函数映射到列表,延迟返回值
# results=pool.map(func=print,iterable=[i for i in range(10000)])
# #不要延迟等待返回值。在完成之前调用结果将会出错。
# results=pool map _ async(func=print,iterable=[i for i in range(10000)])
#close之后,没有新的进程将加入池中
pool.close()
# Join函数等待所有子进程#调用Join之前,结束调用close函数,否则会出错。
pool.join()
# #结束工作流程,不再处理未完成的任务。
# pool.terminate()
三、代码实列
进程池中的Queue:
如果您想使用进程池创建一个进程,您需要在多处理中使用Queue()。Manager()而不是多重处理。队列()。使用方法是一样的,而且已经成功了。然后用q.put()添加,等待用q.get()获取。这就是本文关于Python进程池的基本概念。有关Python进程池的更多信息,请搜索流行的IT软件开发工作室以前的文章或继续浏览下面的相关文章。希望你以后能支持风行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。