Python多线程 Pool().apply_async

  • Post author:
  • Post category:python


使用multiprocessing库,通过multiprocessing.Pool设置进程数,即 (processes=3)或者设置你自己的数量,如果池还没有满,就会创建一个新的进程来执行请求。如果池满,请求就会告知先等待,直到池中有进程结束,才会创建新的进程来执行这些请求。

import multiprocessing
def functest(x):
	函数体
if __name__ == "__main__":
    pool = multiprocessing.Pool(processes=3)
    # 动态循环添加进程
    for i in range(3):
	     print("------------------>", i)
	     # Pool().apply_async(要调用的目标,(传递给目标的参数,))
	     # 每次循环将会用空闲出来的子进程去调用目标
	     pool.apply_async(functest, (i,))
	# 或者直接添加,也可调用不同方法
	pool.apply_async(functest, (3,))
    pool.apply_async(functest, ([0,1,2], ))
    pool.apply_async(functest, ({0,3,4}, ))

	pool.close()
    pool.join()
    print("done.")



版权声明:本文为Porhowlyuu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。