主页 > 知识库 > python Pool常用函数用法总结

python Pool常用函数用法总结

热门标签:房产电销外呼系统 地图制图标注位置改变是移位吗 315电话机器人广告 上海机器人外呼系统哪家好 浙江电销卡外呼系统好用吗 地图标注的意义点 盖州市地图标注 南京销售外呼系统软件 地图标注微信发送位置不显示

1、说明

apply_async(func[,args[,kwds]):使用非堵塞调用func(并行执行,堵塞方式必须等待上一个过程退出才能执行下一个过程),args是传输给func的参数列表,kwds是传输给func的关键词参数列表。

close():关闭Pool,使之不再接受新任务。

terminate():无论任务是否完成,都要立即终止。

join():主进程堵塞,等待子进程退出,必须在close或terminate之后使用。

2、实例

#coding: utf-8
import multiprocessing
import time
 
 
def func(msg):
    print("msg:", msg)
    time.sleep(3)
    print("end")
 
 
if __name__ == "__main__":
    cores = multiprocessing.cpu_count()
    pool = multiprocessing.Pool(processes=cores)
    print("Adding tasks...")
    for i in range(cores):
        msg = "hello %d" %(i)
        pool.apply_async(func, (msg, ))   #维持执行的进程总数为processes,当一个进程执行完毕后会添加新的进程进去
    print("Starting tasks...")
    pool.close()
    pool.join()   #调用join之前,先调用close函数,否则会出错。执行完close后不会有新的进程加入到pool,join函数等待所有子进程结束
    print("Sub-process(es) done.")

实例扩展:

# -*- coding:utf-8 -*-
from multiprocessing import Pool
import os, time, random
def worker(msg):
  t_start = time.time()
  print("%s开始执行,进程号为%d" % (msg,os.getpid()))
  # random.random()随机生成0~1之间的浮点数
  time.sleep(random.random()*2) 
  t_stop = time.time()
  print(msg,"执行完毕,耗时%0.2f" % (t_stop-t_start))
po = Pool(3) # 定义一个进程池,最大进程数3
for i in range(0,10):
  # Pool().apply_async(要调用的目标,(传递给目标的参数元祖,))
  # 每次循环将会用空闲出来的子进程去调用目标
  po.apply_async(worker,(i,))
print("----start----")
po.close() # 关闭进程池,关闭后po不再接收新的请求
po.join() # 等待po中所有子进程执行完成,必须放在close语句之后
print("-----end-----")

运行结果

----start----
0开始执行,进程号为21466
1开始执行,进程号为21468
2开始执行,进程号为21467
0 执行完毕,耗时1.01
3开始执行,进程号为21466
2 执行完毕,耗时1.24
4开始执行,进程号为21467
3 执行完毕,耗时0.56
5开始执行,进程号为21466
1 执行完毕,耗时1.68
6开始执行,进程号为21468
4 执行完毕,耗时0.67
7开始执行,进程号为21467
5 执行完毕,耗时0.83
8开始执行,进程号为21466
6 执行完毕,耗时0.75
9开始执行,进程号为21468
7 执行完毕,耗时1.03
8 执行完毕,耗时1.05
9 执行完毕,耗时1.69
-----end-----

到此这篇关于python Pool常用函数用法总结的文章就介绍到这了,更多相关python Pool常用函数有哪些内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • python中的内置函数max()和min()及mas()函数的高级用法
  • python print()函数的end参数和sep参数的用法说明
  • python处理emoji表情(两个函数解决两者之间的联系)
  • 解决python2中unicode()函数在python3中报错的问题
  • python绘图subplots函数使用模板的示例代码
  • python-opencv中的cv2.inRange函数用法说明
  • Python input()函数用法大全
  • python 如何用map()函数创建多线程任务
  • Python函数参数中的*与**运算符
  • 详解python函数传参传递dict/list/set等类型的问题
  • Python3去除头尾指定字符的函数strip()、lstrip()、rstrip()用法详解
  • Python进阶之高级用法详细总结

标签:临汾 双鸭山 阳泉 克拉玛依 赤峰 贵州 金华 日照

巨人网络通讯声明:本文标题《python Pool常用函数用法总结》,本文关键词  python,Pool,常用,函数,用法,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《python Pool常用函数用法总结》相关的同类信息!
  • 本页收集关于python Pool常用函数用法总结的相关信息资讯供网民参考!
  • 推荐文章