multiprocessing state
2017-09-14 本文已影响0人
xncode
数据共享
共享内存
from multiprocessing import Process, Value, Array
def f(n, a):
n.value = 3.1415927
for i in range(len(a)):
a[i] = -a[i]
if __name__ == '__main__':
num = Value('d', 0.0)
arr = Array('i', range(10))
p = Process(target=f, args=(num, arr))
p.start()
p.join()
print num.value
print arr[:]
server
这个服务进程是通过Manager返回的,可以包含Python对象,允许其他的进程来操作它。支持list dict Namespace Lock RLock Semaphore BoundedSemaphore Condition Event Queue Value Array
from multiprocessing import Process, Manager
def f(d, l):
d[1] = '1'
d['2'] = 2
d[0.25] = None
l.reverse()
if __name__ == '__main__':
manager = Manager()
d = manager.dict()
l = manager.list(range(10))
p = Process(target=f, args=(d, l))
p.start()
p.join()
print d
print l
相比共享内存,是可以通过网络在不同计算机之间共享的,但是会慢一些。