043进程通信和数据共享
2018-06-18 02:10:13来源:未知 阅读 ()
内容:进程通信1、Pipes;2、Queue,以及例子和练习
不同进程的通信有两种,1、是Pipes,2、是Queue ,一般不用Pipes
##########################################
1、Queue实现进程通信
通过创建线程的时候传递数据
print(os.getppid()) # os.getppid()获取父进程的id print(os.getpid()) # os.getpid()或者该进程的id from multiprocessing import Process,Queue def f(q,n): q.put([42,n,'hello']) if __name__ == '__main__': q = Queue() p_list = [] for i in range(3): p = Process(target=f,args=(q,i)) p_list.append(p) p.start() print(q.get()) print(q.get()) print(q.get()) for i in p_list: i.join()
信息在Queue里面通信,这里可以看出,需要的信息通过进程加入到 q 里面后,就可以通过 q 操作。
##########################################################################
2、Pipes实现进程通信
步骤:1)建立Pipe对象,拿到两个进程通信对象
2)通过参数传递,把子进程通信对象发送给子进程
3)通过send和recv通信
from multiprocessing import Process,Pipe def f(conn): conn.send([42,None,'hello']) conn.close() if __name__ == '__main__': parent_conn, child_conn = Pipe() # 获取父子通信的通信对象 p = Process(target=f,args=(child_conn,)) p.start() print(parent_conn.recv()) p.join()
###################################################
数据共享
from multiprocessing import Process,Manager def f(d,l,n): d[n] = '1' d['2'] = 2 d[0.25] = None l.append(n) print(l) if __name__ == '__main__': with Manager() as manager: # with open() as f == f = open() d = manager.dict() l = manager.list(range(5)) p_list = [] for i in range(10): p = Process(target=f,args=(d,l,i)) p.start() p_list.append(p) for res in p_list: res.join()
线程和进程池
http://www.cnblogs.com/yuanchenqi/articles/5733873.html
——多线程(threading模块)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:python学习笔记3
下一篇:python基础技巧综合训练题2
- Python连载30-多线程之进程&线程&线程使用 2019-08-13
- python多线程同步实例分析 2019-08-13
- xpath+多进程爬取八零电子书百合之恋分类下所有小说。 2019-08-13
- xpath+多进程爬取全书网纯爱耽美类别的所有小说。 2019-08-13
- 进程相关 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