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]