python多进程 -- 共享内存与锁


multiprocessing模块的锁Lock使用方式:
 
lock = multiprocessing.Lock() 
创建锁
 
使用锁的两种方式
1.
with lock :
    XXX
执行完获取lock,执行完XXX后,释放lock
2.
lock.acquire() 获取锁
XXX
lock.release() 释放锁
手动获取锁和释放锁
 
 
共享内存使用方式
在共享内存中创建一个变量
num1 = multiprocessing.Value('b', 100) 
在共享内存中创建一个数组
num2 = multiprocessing.Array('b', range(100))
 
变量或数组的类型
 

 

 
举例
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[:])
 
结果:
 
3.1415927
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM