2024-04-25 22:05:16 发布
网友
这能做到吗?在
我的想法是:
我将有一个dict,每个子进程将添加一个新的关键:价值组合听天由命
这可以用多重处理来完成吗?有什么限制吗?在
谢谢!在
在使用多处理的情况下,需要将条目传播到“父进程字典”,但有一种解决方法:
使用多重处理是有帮助的,因为那个叫吉尔的家伙。。。所以,是的,我确实是不假思索地使用了它,因为它很好地利用了核心。但我用的是经理。比如:
a_manager = multiprocessing.Manager
然后我将其用作共享结构:
在启动流程工人的呼叫中:
worker_seq = [] for n in range(multiprocessing.cpu_count()): worker_seq.append(multiprocessing.Process(target=my_work_function, args=(shared_map,))
有很多以前的艺术,比如:
Python multiprocessing: How do I share a dict among multiple processes?
share dict between processes
python multiprocess update dictionary synchronously
Python sharing a dictionary between parallel processes
Yes, Python supports multiprocessing。在
但是,由于您打算为每个“进程”使用相同的dict,所以我建议使用multi-threading而不是多处理。这允许每个线程使用相同的dict,而不必将来自不同进程的数据发送到父进程的dict
显然,如果您的输入方法依赖于用户或来自stdin,则会出现问题。但是如果你从一个文件中得到输入,它应该可以正常工作。在
我建议使用this博客来帮助您使用线程池。它还解释了多处理.dummy,但文件没有。在
如果您只想在子进程中读入数据,并且每个子进程将添加一个键值对,您可以使用^{}:
import multiprocessing def worker(x): return x, x ** 2 if __name__ == '__main__': multiprocessing.freeze_support() pool = multiprocessing.Pool(multiprocessing.cpu_count()) d = dict(pool.map(worker, xrange(10))) print d
输出:
在使用多处理的情况下,需要将条目传播到“父进程字典”,但有一种解决方法:
使用多重处理是有帮助的,因为那个叫吉尔的家伙。。。所以,是的,我确实是不假思索地使用了它,因为它很好地利用了核心。但我用的是经理。比如:
然后我将其用作共享结构:
^{pr2}$在启动流程工人的呼叫中:
有很多以前的艺术,比如:
Python multiprocessing: How do I share a dict among multiple processes?
share dict between processes
python multiprocess update dictionary synchronously
Python sharing a dictionary between parallel processes
Yes, Python supports multiprocessing。在
但是,由于您打算为每个“进程”使用相同的dict,所以我建议使用multi-threading而不是多处理。这允许每个线程使用相同的dict,而不必将来自不同进程的数据发送到父进程的dict
显然,如果您的输入方法依赖于用户或来自stdin,则会出现问题。但是如果你从一个文件中得到输入,它应该可以正常工作。在
我建议使用this博客来帮助您使用线程池。它还解释了多处理.dummy,但文件没有。在
如果您只想在子进程中读入数据,并且每个子进程将添加一个键值对,您可以使用^{} :
输出:
^{pr2}$相关问题 更多 >
编程相关推荐