Ved*_*nt7 6 python shared multiprocessing
所以我试图在 python 中实现多处理,我希望有一个并行运行方法的 4-5 个进程的池。这样做的目的是总共运行 1000 次 Monte 模拟(每个进程 250-200 次模拟)而不是运行 1000 次。我希望每个进程在完成处理后立即通过获取锁来写入公共共享数组一次模拟的结果,写入结果并释放锁。所以它应该是一个三步过程:
每次我将数组传递给进程时,每个进程都会创建该数组的副本,因为我想要一个公共数组,所以我不想要它。任何人都可以通过提供示例代码来帮助我吗?
未经测试,但类似的东西应该可以工作。数组和锁在进程之间共享。
from multiprocessing import Process, Array, Lock
def f(array, lock, n): #n is the dedicated location in the array
lock.acquire()
array[n]=-array[n]
lock.release()
if __name__ == '__main__':
size=100
arr=Array('i', [3,-7])
lock=Lock()
p = Process(target=f, args=(arr,lock,0))
q = Process(target=f, args=(arr,lock,1))
p.start()
q.start()
q.join()
p.join()
print(arr[:])
Run Code Online (Sandbox Code Playgroud)
这里的文档https://docs.python.org/3.5/library/multiprocessing.html有很多示例可以开始
| 归档时间: |
|
| 查看次数: |
12924 次 |
| 最近记录: |