python自写线程池

由于python自带的线程池方法不好用,主要呈现缺点2点
1.线程池无法通过手段进行停止
2.没有线程守护,导致程序已经关闭了,线程池还在运行。
故以上原因自写了一个类似线程池的类

定义线程池类

def action(max):
    my_sum = 0
    time.sleep(1)
    print(threading.current_thread().name +"   "+ str(max))
    return 1

class MyThreadPool():
    def __init__(self, workNum):
        self.tasks = []
        self.workNum = workNum
        self.exitFlag = 0

    def execute(self):
        for i in range(0,len(self.tasks),self.workNum):
            if(self.workNum>len(self.tasks)):#如果任务数小于你设定的线程数,那就直接定义线程数为任务数
                worknum = len(self.tasks)
            else:
                worknum = self.workNum
            ts = []
            for k in range(worknum):
                if(self.exitFlag):
                    print("线程池退出子线程")
                    break
                if(i+k

你可能感兴趣的:(python自写线程池)