簡體   English   中英

使用列表數組的共享內存的Python多處理

[英]Python multiprocessing for shared memory with an array of lists

我需要知道是否有一種共享布爾列表數組的內存的方法:

s = Array( 'x' , range(10000000)) 

我要寫什么而不是x來使其成為一個數組列表,數組的大小為64。那么我必須在兩個不同的過程中操縱“ s”,如下所示:

#First

for i in range(0,photoCount):
    db.newDBS.insert_one({ 'photo' : s[i], 'user_id' : ids[i] })

#Second

s[photoCount].append = inPhoto

應該是什么類型? 任何幫助或建議表示贊賞。 謝謝!

Python Multiprocessing模塊允許兩種類型的共享變量: Array (它是單個dtype的簡單一維數組)和Value ,它只是一個單一值。

如果您知道使用C的方式,則可以使用ctype設計自己的共享變量:請參見此處文檔。

如果只需要2D數組,而又不想使用ctype共享對象,也許可以將數組展平在一個列表中,而改用multiprocessing.Array 然后在處理完成后重塑形狀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM