在Mac上完成多处理时挂起,但不在Windows上挂起
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Mac上完成多处理时挂起,但不在Windows上挂起相关的知识,希望对你有一定的参考价值。
我有两个开发环境......一台Windows计算机和一台Mac用于旅途中。该脚本在Windows计算机上运行正常,并将循环遍历所有池。但在Mac上,它只是挂起。但是,当我手动将进程计数设置为1时,它确实有效。
这挂起......
def insert_user_request(self, data):
pool_size = multiprocessing.cpu_count() * 2
pool = multiprocessing.Pool(processes=pool_size)
pool.map(self.insert_user, data)
这有效......
def insert_user_request(self, data):
pool_size = 1
pool = multiprocessing.Pool(processes=pool_size)
pool.map(self.insert_user, data)
池调用的函数将数据插入数据库,果然,数据也很好。因此,这似乎是问题的“关闭”池。
答案
在原始问题的评论中归功于Antti Haapala,但是spawn start方法起作用了。
def insert_user_request(self, data):
multiprocessing.set_start_method('spawn')
pool_size = multiprocessing.cpu_count() * 2
pool = multiprocessing.Pool(processes=pool_size)
pool.map(self.insert_user, data)
以上是关于在Mac上完成多处理时挂起,但不在Windows上挂起的主要内容,如果未能解决你的问题,请参考以下文章