python 进程间共享数据 (三)

Python的multiprocessing模块包装了底层的机制,提供了Queue、Pipes等多种方式来交换数据。

我们以Queue为例,在父进程中创建两个子进程,一个往Queue里写数据,一个从Queue里读数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from  multiprocessing  import  Process, Queue
import  os, time, random
 
# 写数据进程执行的代码:
def  write(q):
     for  value  in  [ 'A' 'B' 'C' ]:
         print  'Put %s to queue...'  %  value
         q.put(value)
         time.sleep(random.random())
 
# 读数据进程执行的代码:
def  read(q):
     while  True :
         value  =  q.get( True )
         print  'Get %s from queue.'  %  value
 
if  __name__ = = '__main__' :
     # 父进程创建Queue,并传给各个子进程:
     =  Queue()
     pw  =  Process(target = write, args = (q,))
     pr  =  Process(target = read, args = (q,))
     # 启动子进程pw,写入:
     pw.start()
     # 启动子进程pr,读取:
     pr.start()
     # 等待pw结束:
     pw.join()
     # pr进程里是死循环,无法等待其结束,只能强行终止:
     pr.terminate()

  from : 网上整理

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值