• 最方便建立进程池,线程池的方法


    建立进程池,线程池:

    进程池
    from
    concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor import time,random,os def task(n): print('%s is running'%os.getpid()) time.sleep(5) return n**2 if __name__ == '__main__': p = ProcessPoolExecutor() l=[] start=time.time() for i in range(20): obj=p.submit(task,i) l.append(obj) p.shutdown() print([obj.result()for obj in l]) print(time.time()-start)
    线程池
    from
    concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor import time,random,os def task(n): print('%s is running'%os.getpid()) time.sleep(5) return n**2 if __name__ == '__main__': p = ThreadPoolExecutor() l=[] start=time.time() for i in range(20): obj=p.submit(task,i) l.append(obj) p.shutdown() print([obj.result()for obj in l]) print(time.time()-start)

    在这里我要声明一下,多进程,以及多线程,进程池,线程池:

    多进程,简单来来讲就是好多个进程在做事,当进行I/O操作的是时候,一个进程去做这件事,其他进程就只能等着,只有这个进程做完了,其他进程才能去做,就和上厕所是一样,一个人上厕所,其他人都得等着,在这里又出现一个进程池,所谓的进程池就是用来规范多进程的,不理解吧,(这样多进程用于计算的时候,比如说你有好多的进程2000000个,这么多都在计算是不是很可怕,这里添加一个进程池约束一下是不是就完美了,里面的计算完了,外面的再进来计算)

    多线程,怎么讲呢,就是在一个进程里面,所以这个进程里面的资源对于线程来说就是共享的啦,多线程常用于I/O操作,

  • 相关阅读:
    问题建模---大纲---待补充
    塞库报表封装问题分析--一篇不太成功的问题分析报告
    哲学的根本问题--以人为本
    什么是本体论
    知行合一是做人的最高境界
    什么是问题?--人类才是最大的问题--所有的问题都是在人类认识世界和改造世界中产生的
    还原论与what、how、why
    selinux 开启和关闭
    Macbook上打开多个终端的方法
    PHPStorm 快捷键大全(Win/Linux/Mac)
  • 原文地址:https://www.cnblogs.com/liuchengdong/p/7459296.html
Copyright © 2020-2023  润新知