python线程池

# 使用shutdown等待所有线程结束后在打印主线程from concurrent.futures import ThreadPoolExecutorimport timedef work(num):
    time.sleep(1)    print('工作线程:',num)if __name__ == '__main__':
    executor = ThreadPoolExecutor(max_workers=5)  # 创建线程池,数量为5
    for i in range(5):
        executor.submit(work, i)
    executor.shutdown(wait=True)  # 等待线程池结束
    print('主线程')# 打印内容如下工作线程: 0
工作线程: 1工作线程: 2工作线程: 3工作线程: 4主线程



如果想要在线程执行的过程中添加额外的功能,可以使用initializer参数,如下:

from concurrent.futures import ThreadPoolExecutor


def work(num):

    print('工作线程:',num)

def test(num):

    print('额外任务:',num)

if __name__ == '__main__':

    executor = ThreadPoolExecutor(max_workers=5,initializer=test,initargs=(7,)) # 添加额外任务

    for i in range(5):

        executor.submit(work, i)

    executor.shutdown(wait=True)

    print('主线程')


# 打印内容如下

额外任务: 7

工作线程: 0

额外任务: 7

工作线程: 1

额外任务: 7

工作线程: 2 

额外任务: 7

工作线程: 3 

额外任务: 7

工作线程: 4 

主线程


    作者头像
    jstang创始人

    专注js,vue,react,python

    上一篇:微信小程序for的数组this.setData赋值
    下一篇:this.setData简写