![](/img/trans.png)
[英]How to make a multiprocessing.Array process safe in python
[英]How to make class member process safe in Python
我正在一個類上執行一些任務,該類在迭代器上產生多個進程,以確保每個條目被處理一次。 代碼如下:
import multiprocessing as mp
Class MyClass():
def __init__():
self.index=[blabla]
self.iterator=0
self.workers=[mp.Process(target=self.worker, args=(self.lock, args) for i in range(10)]
def worker(self, lock, args):
# I intend to use lock to make only one subprocs read index
# list until iterator goes to next
while some_condition:
lock.acquire()
now_item=self.index[self.iterator]
self._next_iter()
lock.release()
...# do something on now_item
def._next_iter(self):
#do some checks and +1 on iterator
但是似乎所有子進程都從iterator = 0開始並執行自己的循環。 我知道可以將它們與Queue()
對象同步,但是如果我們不使用它怎么辦?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.