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]