python 进程间共享数据 (二)

Python中进程间共享数据,除了基本的queue,pipe和value+array外,还提供了更高层次的封装。使用multiprocessing.Manager可以简单地使用这些高级接口。 

Manager()返回的manager对象控制了一个server进程,此进程包含的python对象可以被其他的进程通过proxies来访问。从而达到多进程间数据通信且安全。

Manager支持的类型有list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue,Value和Array。 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import  time
import  multiprocessing
 
def  worker(d, key, value):
     d[key]  =  value
 
if  __name__  = =  '__main__' :
     print  time.strftime( '%y-%m-%d %H:%M:%S'  ,   time.localtime())
     mgr  =  multiprocessing.Manager()
     =  mgr. dict ()
     jobs  =  [ multiprocessing.Process(target = worker, args = (d, i, i * 2 ))
              for  in  range ( 10 )
              ]
     for  in  jobs:
         j.start()
     for  in  jobs:
         j.join()
     print  ( 'Results:'  )
     for  key  in  dict (d):
       print  "%s->%s"  %  (key,d[key])

  转自:http://www.cnblogs.com/itech/archive/2012/01/10/2318120.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值