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