【发布时间】:2023-04-05 12:55:01
【问题描述】:
我有这样的代码:
from multiprocessing import Pool
def do_stuff(idx):
for i in items[idx:idx+20]:
# do stuff with idx
items = # a huge nested list
pool = Pool(5)
pool.map(do_stuff, range(0, len(items), 20))
pool.close()
pool.join()
问题是线程池不共享items,而是为每个线程创建副本,这是一个问题,因为列表很大并且占用内存。有没有办法以共享items 的方式实现这一点?找到了一些 global 的例子,它们在基本的 thread 库中工作,但似乎不适用于 multiprocessing 库。
谢谢!
【问题讨论】:
标签: python multithreading python-2.7 multiprocessing threadpool