python,并发期货,不适用于其他运行

时间:2018-10-17 06:42:43

标签: python multiprocessing

有人可以帮助我解决以下问题。我会很感激的。

我试图同时运行多个进程。当我第一次这样做时,它可以正常工作。但是,当我第二次运行它时,它不能正常工作。它需要一些时间,并在5分钟内完成,而第一次需要30秒才能完成。当我查看资源监视时,我发现在第一次运行后,有多个进程“ python 2.7”在CPU列中具有零到十个值(0或10)。如果我重新启动python并运行代码,则第一次可以正常运行。之后,它再次停止正常工作。我该如何设定可持续的工作?

import nltk
import concurrent.futures

def try_my_operation(k):
    sentences= nltk.sent_tokenize(k)
    return sentences

executor=concurrent.futures.ProcessPoolExecutor()

futures = [executor.submit(try_my_operation, data['text'][i]) for i in range(0,data.shape[0])]
concurrent.futures.wait(futures)

executor=concurrent.futures.ProcessPoolExecutor(1)

executor.shutdown(wait=False)

gc.collect() 

0 个答案:

没有答案