Python multiprocessing模块Pool进程池使用详解
本文介绍Python中multiprocessing模块的Pool进程池用法。通过创建指定数量的进程池,利用apply_async进行异步任务提交,配合close和get方法获取结果。示例展示了100个任务在25个进程中的执行情况及进程状态查看。
本文通过一个具体实例,详细解析了Python中multiprocessing模块下多线程池(Pool)的操作方法,旨在为读者提供实用的参考代码与说明。
Python multiprocessing模块中的多线程Pool使用指南

以下是具体的脚本代码实现:
root@72132server:~/python/multiprocess# ls
multiprocess_pool.py multprocess.py
root@72132server:~/python/multiprocess# cat multiprocess_pool.py
#!/usr/bin/python
# --*-- coding:utf-8 --*--
import multiprocessing
import sys,os,time
result = []#把运行的进程池放入,空的列表
def run(msg):#定义正在处理进程编号数的函数功能
print 'threading number:%s %s' %(msg,os.getpid())#打印正在处理的进程编号数与对应的系统进程号
time.sleep(2)
p = multiprocessing.Pool(processes = 25)#绑定事例,同时执行25个线程
for i in range(100):
result.append(p.apply_async(run,('%s' %i,)))#异步传输正在运行的进程数字号码
p.close()#关闭正在运行的25个进程
#p.join()
for res in result:#获取运行结果
res.get(timeout=5)
root@72132server:~/python/multiprocess#
程序的运行输出结果如下:
1)脚本执行过程
root@72132server:~/python/multiprocess# python multiprocess_pool.py threading number:0 27912 threading number:1 27915 threading number:2 27913 threading number:3 27916 threading number:4 27917 threading number:5 27918 threading number:6 27919 threading number:7 27920 threading number:8 27922 threading number:9 27923 threading number:10 27924 threading number:11 27925 threading number:12 27926 threading number:13 27927 threading number:14 27928 threading number:15 27914 threading number:16 27929 threading number:17 27921 threading number:18 27930 threading number:19 27931 threading number:20 27932 threading number:21 27934 threading number:22 27935 threading number:23 27936 threading number:24 27933 threading number:25 27912 threading number:26 27915 threading number:27 27917 threading number:28 27918 threading number:29 27916 threading number:30 27913 threading number:31 27922 threading number:32 27919 threading number:33 27920 threading number:34 27923 threading number:35 27924 threading number:36 27925 threading number:37 27927 threading number:38 27921 threading number:39 27930 threading number:40 27932 threading number:41 27934 threading number:42 27935 threading number:43 27926 threading number:44 27931 threading number:45 27928 threading number:46 27929 threading number:47 27914 threading number:48 27933 threading number:49 27936 threading number:50 27912 threading number:51 27915
2)进程状态监控(显示同时运行的25个进程)
root@72132server:~/python/multiprocess# ps -ef | grep multi root 27905 23930 0 22:39 pts/3 00:00:00 grep multi root@72132server:~/python/multiprocess# ps -ef | grep multi root 27911 20609 1 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27912 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27913 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27914 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27915 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27916 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27917 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27918 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27919 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27920 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27921 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27922 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27923 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27924 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27925 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27926 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27927 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27928 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27929 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27930 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27931 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27932 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27933 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27934 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27935 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27936 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27941 23930 0 22:39 pts/3 00:00:00 grep multi root@72132server:~/python/multiprocess# ps -ef | grep multi root 27911 20609 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27912 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27913 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27914 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27915 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27916 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27917 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27918 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27919 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27920 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27921 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27922 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27923 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27924 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27925 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27926 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27927 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27928 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27929 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27930 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27931 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27932 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27933 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27934 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27935 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27936 27911 0 22:39 pts/1 00:00:00 python multiprocess_pool.py root 27943 23930 0 22:39 pts/3 00:00:00 grep multi root@72132server:~/python/multiprocess#
如果您对Python的其他相关操作感兴趣,推荐查阅本站的《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》、《Python+MySQL数据库程序设计入门教程》以及《Python常见数据库操作技巧汇总》等专题文章。
希望上述关于Python程序设计的介绍能对您有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













