在python中杀死完成的线程

时间:2016-08-08 11:22:41

标签: python multithreading

我的多线程脚本引发了这个错误:

thread.error : can't start new thread

当它达到460个线程时:

threading.active_count() = 460

我认为旧线程保持堆叠,因为脚本没有杀死它们。这是我的代码:

import threading
import Queue
import time
import os
import csv


def main(worker):
    #Do Work
    print worker
    return

def threader():
    while True:
        worker = q.get()
        main(worker)
        q.task_done()        

def main_threader(workers):
    global q
    global city
    q = Queue.Queue()
    for x in range(20):
        t = threading.Thread(target=threader)
        t.daemon = True
        print "\n\nthreading.active_count() = "  + str(threading.active_count()) + "\n\n"
        t.start()
    for worker in workers:
        q.put(worker)   
    q.join()

如何在作业完成后杀死旧线程? (还不够吗?)

我确定旧的线程工作已完成,因为我正在打印结果,但我不确定为什么他们之后仍然活跃,任何直接的方法在完成工作后杀死一个线程?

0 个答案:

没有答案