python自带的线程池和进程池

时间:2022-06-17 18:31:21
#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()