【2020Python修炼记】python并发编程(六)补充—进程池和线程池(线程池 Python)

网友投稿 629 2022-09-20

【2020Python修炼记】python并发编程(六)补充—进程池和线程池(线程池 Python)

【2020Python修炼记】python并发编程(六)补充—进程池和线程池(线程池 Python)

1、

2、 为啥要有 进程池和线程池

进程池来控制进程数目,比如httpd的进程模式,规定最小进程数和最大进程数

3、创建进程池的类Pool

如果指定numprocess为3,则进程池会从无到有创建三个进程,然后自始至终使用这三个进程去执行所有任务,不会开启其他进程

Pool([numprocess [,initializer [, initargs]]]):创建进程池

参数介绍:

numprocess:要创建的进程数,如果省略,将默认使用cpu_count()的值

initializer:是每个工作进程启动时要执行的可调用对象,默认为None

initargs:是要传给initializer的参数组

方法介绍:

主要方法:

p.apply(func [, args [, kwargs]])

在一个池工作进程中执行func(*args,**kwargs),然后返回结果。

需要强调的是:此操作并不会在所有池工作进程中并执行func函数。如果要通过不同参数并发地执行func函数,必须从不同线程调用p.apply()函数或者使用p.apply_async()

p.apply_async(func [, args [, kwargs]])

在一个池工作进程中执行func(*args,**kwargs),然后返回结果。此方法的结果是AsyncResult类的实例,callback是可调用对象,接收输入参数。

当func的结果变为可用时,将理解传递给callback。callback禁止执行任何阻塞操作,否则将接收其他异步操作中的结果。

p.close()

关闭进程池,防止进一步操作。如果所有操作持续挂起,它们将在工作进程终止前完成

p.jion()

等待所有工作进程退出。此方法只能在close()或 teminate()之后调用

4、进程池和线程池

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:初探 Unix 操作系统
下一篇:Solaris 10 配置远程ssh
相关文章

 发表评论

暂时没有评论,来抢沙发吧~