Python调用multiprocessing.pool terminate方法关闭整个线程?

时间:2015-11-29 04:54:26

标签: python multiprocessing

我在多处理和django框架中使用池。我有这样的代码

def tokenize(request) :
    global pool
    pool = Pool(processes=32,initializer= compute_customizedStopwords, initargs=()) 
    global canceled
    canceled = False
    for i in range(100) :
        pool.apply(sometask, someargs)
    if canceled :
        return HttpResponse("canceled")
    return HttpResponse("successful!") 

def cancelTokenization(request):
    pool.terminate()
    canceled = True
    return HttpResponse()

当用户按下tokenize按钮时,会出现一个新的Web请求,并且主进程应该创建一个新线程来解决此请求。但是由于此函数使用了多处理。主进程应该运行一堆子进程来运行标记化。但是当令牌化正在运行时,当urse按下取消时,标记化进程池应该终止并返回“已取消!”。但事实证明,前端永远不会得到任何回应,无论是成功还是取消。我想知道pool.terminate是否应该关闭主进程中先前运行的线程?我该如何实现这个停止功能。

0 个答案:

没有答案