首页 > 编程语言 > 详细

线程池与进程池

时间:2019-03-03 17:03:42      阅读:209      评论:0      收藏:0      [点我收藏+]

当要起多个进程时,有时候电脑会太卡,这时候就建议直接起一个进程池,一般线程池的个数建议比CPU个数或者比cpu多一个

from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
def thread():
    print(子线程)
if __name__ == __main__:

    t = ThreadPoolExecutor(4)
    t.submit(thread)

上图是如何使用concurrent.futures开启一个线程池

from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
def thread():
    print(子进程)
if __name__ == __main__:

    t = ProcessPoolExecutor(4)
    t.submit(thread)

上图则是如何使用concurrent.futures开启一个进程池

from multiprocessing import Pool
def func():
    print(子进程)
if __name__ == __main__:
    p = Pool(4)
    p.apply_async(func,)
    p.close()
    p.join()
    print(这是主进程)

上图是一个使用进程里面的模块pool创建的一个进程池,如果在主进程代码里面不加close和join,子进程里面的代码将不会执行,因为这时候系统感知到了你的主进程中的代码已经结束了,所以就不等子进程结束就直接结束代码,所以此时必须要加一个join,让主进程等待子进程代码完全结束在结束

 

线程池与进程池

原文:https://www.cnblogs.com/baby12138/p/10466318.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!