线程池



# python自带的线程池
from multiprocessing.pool import ThreadPool  # 注意ThreadPool不在threading模块下
from multiprocessing import Pool  # 导入进程池


def func(*args, **kwargs):
    print(args, kwargs)

    pool = ThreadPool(2)
    # pool=Pool(2) ##进程池
    pool.apply_async(func, args=(1, 2), kwds={})  # 注意这里是kwds,不是kwargs

    pool.close()  # 在join之前,必须要close一下,不允许再提交任务了,关闭提交任务的通道
    pool.join()


# 特别注意,进程池和线程池是在Linux上的东西,上面的代码要想在win上运行,可用如下方法(只是一小部分兼容):
if __name__ == '__main__':
    pool = ThreadPool(2)
    pool.apply_async(func, args=(1, 2), kwds={})
    pool.close()
    pool.join()


posted @ 2019-10-16 16:16  nanaindi  阅读(87)  评论(0编辑  收藏  举报