首页 / PYTHON / Python 多进程编程
Python 多进程编程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python 多进程编程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1998字,纯文字阅读大概需要3分钟。
内容图文
import multiprocessing import time import os import random g_nums = [11, 22, 33] def test1(): while True: print("子进程PID = %d,父进程PID = %d" % (os.getpid(), os.getppid())) time.sleep(1) def test2(a, b, c, *args, **kwargs): print(a) print(b) print(c) print(args) print(kwargs) def test3(): global g_nums g_nums.append(44) print("test3:", end="") print(g_nums) def test4(): global g_nums print("test4:", end="") print(g_nums) def download_from_web(q): """ 下载数据 """# 模拟从网上下载数据 data = [11, 22, 33, 44] # 向队列中写入数据for temp in data: q.put(temp) print("下载器已经下载完了数据,并存入到了队列中!") def analysis_data(q): """ 数据处理 """ wait_analysis_data = list() while True: data = q.get() wait_analysis_data.append(data) if q.empty(): breakprint("模拟数据处理:" + str(wait_analysis_data)) def work(msg): t_start = time.time() print("%d开始执行,进程PID:%d" % (msg, os.getppid())) # random.random()随机生成0~1之间的浮点数 time.sleep(random.random() * 2) t_stop = time.time() print("%d执行完毕,耗时%0.2f" % (msg, t_stop - t_start)) def main(): print("主进程PID = %d,父进程PID = %d" % (os.getpid(), os.getppid())) # 创建一个队列 q = multiprocessing.Queue() # 定义一个进程池,最大进程数3 po = multiprocessing.Pool(3) p1 = multiprocessing.Process(target=test1) p2 = multiprocessing.Process(target=test2, args=(11, 22, 33, 44, 55, 66, 77), kwargs={"籍贯": "常山", "姓名": "赵子龙"}) p3 = multiprocessing.Process(target=test3) p4 = multiprocessing.Process(target=test4) # 创建多个进程,将队列的引用当做实参传递到里面 p5 = multiprocessing.Process(target=download_from_web, args=(q,)) p6 = multiprocessing.Process(target=analysis_data, args=(q,)) # p1.start()# p2.start()# # 进程3 和 进程4 说明:多进程之间不共享全局变量# p3.start()# p4.start()# # 进程5 和 进程6 演示了多进程之间通过Queue 来实现数据共享# p5.start()# p6.start()for i in range(1, 11): # Pool().apply_async(要调用的目标,(传递给目标的参数元祖,))# 每次循环将会用空闲出来的子进程去调用目标 po.apply_async(work, args=(i,)) print("------start------") # 关闭进程池,关闭后po不再接收新的请求 po.close() # 等待po中所有子进程执行完成,必须放在close语句之后 po.join() print("------end------") if__name__ == ‘__main__‘: main()
原文:https://www.cnblogs.com/duxie/p/11336565.html
内容总结
以上是互联网集市为您收集整理的Python 多进程编程全部内容,希望文章能够帮你解决Python 多进程编程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。