我创建了一个类,其中存储了几个大型词典,以及一个将文件作为输入并使用词典中包含的信息进行处理的方法。
现在,我必须处理的文件总数约为18000,因此我选择以这种方式使用multiprocessing.dummy.Pool
:
with dummy.Pool(processes=50) as pool:
failed = [x for x in pool.imap(export.get_uniref_uniprotkb_from_panproteome, species, chunksize=300)]
我在htop
中注意到的是,即使我更改了块大小,主进程也正确地产生了50个线程,但是只有一个处于运行状态。