我已经在多处理的帮助下在Python(版本3.7)中实现了SharedListManager, Lock。我已将其用作使用多处理Process函数调用创建的进程之间的共享对象。共享列表用于存储共享每个进程所生成的值/对象。
使用Python 和的SharedList的实现ManagerLockmultiprocessing
class SharedList(object):
def __init__(self, limit):
self.manager = Manager()
self.results = self.manager.list([])
self.lock = Lock()
self.limit = limit
def append(self, new_value):
with self.lock:
if len(self.results) == self.limit:
return False
self.results.append(new_value)
return True
def list(self):
with self.lock:
return list(self.results).copy()
Run Code Online (Sandbox Code Playgroud)
使用创建的SharedList存储使用创建的多个进程的值multiprocessing
results = SharedList(limit)
num_processes = min(process_count, limit)
processes = []
for i in range(num_processes):
new_process = Process(target=child_function, args=(results))
processes.append(new_process)
new_process.start()
for _process in processes:
_process.join() …Run Code Online (Sandbox Code Playgroud)