【发布时间】:2020-08-31 18:13:11
【问题描述】:
我在 Python3 中使用多处理时遇到问题。我使用多处理读取多个文件并使用读取数据创建实例。在阅读和创建实例之后,我想要的是在创建一个实例之后,做一些事情。但它并没有像我预期的那样工作。
下面的代码实际上会等待所有创建的实例,然后执行 do_something 代码。这不是我所期望的。
import multiprocessing
import os
from itertools import repeat
pool = multiprocessing.Pool(processes=3)
pool = multiproccesiin.pool.ThreadPool(processes=1)
events = list(map(lambda x: os.path.split(x)[1].split('.')[0], events))
async_results = pool.startmap_async(Writer,zip(events, repeat(self._settings['TANKDIR']), repeat(self._settings['CATDIR']),repeat(self._settings['DATADIR'])))
# Writer is my class init.
# The earliest created instance takes about 4.5 sec.
tpool.map(do_something, async_results.get())
# I thought tpool.map part start do_something right after one instance created.'
【问题讨论】:
标签: python multiprocessing threadpool