我使用的是Multiprocessing.dummy软件包,它只是线程软件包,用于读取某些文件。我也只使用多处理进行计算。我在Spyder中运行我的代码,并针对不同的文件或计算运行了几次之后,开始出现并行代码错误。通常,错误与内存有关,例如在多处理/线程代码中发生的OS Error: [Errno 12] Cannot allocate memory
。
我注意到线程数一直在增加,我想知道这是否是问题的一部分。例如,较早前我见过multiprocessing.threading.active_count() = 277
。这些都是DummyProcess和Thread线程。最终,运行代码似乎会杀死/重置Spyder。我的并行代码如下:
# I/O example
io_pool = multiprocessing.dummy.Pool()
io_pool.map(func,files)
# Comp example
cpu_pool = multiprocessing.Pool()
cpu_pool.map(func,var)
有没有办法杀死活动线程?我似乎无法加入或关闭他们,但不确定该如何运作。