当前位置: 代码迷 >> 综合 >> python并发之 多进程
  详细解决方案

python并发之 多进程

热度:79   发布时间:2024-02-10 22:44:14.0

多进程

环境: python2.7.1

创建多进程

import multiprocessingp1 = multiprocessing.ProcessProcess([group [, target [, name [, args [, kwargs]]]]])

 target表示调用对象;

args表示调用对象的位置参数元组;

kwargs表示调用对象的字典;

name为别名;

group进程组(实质上不使用)。

方法:

is_alive(): 检查进程是否在运行当中
join([timeout]):阻塞直到进程运行结束为止,设置有超时时间,子进程到超时时间自动退出
run():进程运行的主函数
start():Process以start()启动某个进程。
terminate():结束进程,不在处理未处理的任务。
pool = Pool(1)
result = pool.apply_async(function, args=(arg, arg))
result = result.get(11)
pool.terminate()
pool.join()
print(result)

 

 

 

multiprocessing.pool.AsyncResult.get(timeout) 实现 function raise error 时自己也 raise error ,然后通过 pool.terminate() 就能结束进程,还可以设置超时、返回 function return value,可以说相当好用了。要注意的是上面的例子中是每个进程都等待 timeout 秒的,多进程同时等待 timeout 应将 pool.apply_async() 改为使用 pool.map_async()

 

  相关解决方案