Python多进程
2018-06-18 02:51:29来源:未知 阅读 ()
1 from multiprocessing import Process,Queue 2 3 def pan(rr): 4 rr.put([1,"2sdf"]) 5 6 if __name__ == "__main__": 7 #创建进程queue队列对象 8 q = Queue() 9 #创建子进程,target=函数名,args=进程队列对象 10 p = Process(target=pan,args=(q,)) 11 #启动进程 12 p.start() 13 #获取队列中的值 14 print(q.get()) 15 #等待进程结束 16 p.join()
1 from multiprocessing import Process,Pipe 2 3 def execut(conn): 4 conn.send([1,"hello word"]) 5 print("接收主进程发来的消息:%s"%conn.recv()) 6 7 if __name__ == "__main__": 8 #创建管道对象,当管道对象创建后必定返回两个参数,把这两个参数分别赋给不同的进程即可 9 Apipe,Bpipe = Pipe() 10 p = Process(target=execut,args=(Bpipe,)) 11 p.start() 12 print("接收子进程发来的消息:%s"%Apipe.recv()) 13 Apipe.send({"王阳明": "传习录"}) 14 p.join()
通过Manager包创建多进程共享
1 #进程间共享一份数据 2 #这里Manager实际是将主进程创建的内存对象拷贝给子进程,在所有进程结束后合并所有进程产生的数据。 3 4 from multiprocessing import Process,Manager 5 import os 6 7 def run(dt,lt): 8 dt["name"] = "sober" 9 dt["workdata"] = "2018-05-09" 10 lt.append(os.getpid()) 11 print(lt) 12 13 if __name__ == "__main__": 14 with Manager() as mng: 15 #使用Manager对象创建一个共享字典 16 dt = mng.dict() 17 #使用Manager对象创建一个共享列表 18 lt = mng.list() 19 #存储子进程对象 20 plist = [] 21 for i in range(5): 22 #创建子进程 23 p = Process(target=run,args=(dt,lt)) 24 p.start() 25 plist.append(p) 26 for n in plist: 27 #等待所有子进程结束 28 n.join() 29 30 print(dt) 31 print(lt)
进程池使用
1 from multiprocessing import Process,Pool 2 import os 3 4 def run(n): 5 #创建子进程执行函数 6 print("Start number: %s"%n) 7 8 def backDef(b): 9 #显示回调函数的信息,打印执行回调函数的PID 10 print("CallBacke Def :%s"%b,os.getpid()) 11 12 if __name__ == "__main__": 13 print("Print master processes PID:%s"%os.getpid()) 14 #定义一个进程池,限制进程数为:2 15 pl = Pool(processes=2) 16 #创建进程 17 for i in range(10): 18 #异步进程,func=进程执行方法名,args=方法参数,callback=回调函数 19 pl.apply_async(func=run,args=(i,),callback=backDef) 20 print("Test finish") 21 #先关闭池子,在等待池子内的工作都完成 22 pl.close() 23 pl.join()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash