zoukankan      html  css  js  c++  java
  • 并发编程--线程池与进程池

    核心思想

    以时间换空间

    进程池

    进程池:一个容器,这个容器限制住你开启进程的数量,默认是os.cpu_count(),我的电脑是8核,所以能开启8个,第一次肯定只能并行的处理8个任务,只要有任务完成,进程马上就会接下一个任务。

    代码实现:

    from concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor
    import os,time,random
    
    # print(os.cpu_count())
    def task(n):
        print(f"{os.getpid()} 接客")
        time.sleep(random.randint(1,3))
    
    if __name__ == '__main__':
        p = ProcessPoolExecutor()
        for i in range(30):
            p.submit(task,1)
    

    线程池

    线程池:线程最多能执行的是进程的5倍,也就是40个

    代码实现:

    from concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor
    import os,time,random
    
    # print(os.cpu_count())
    def task(n):
        print(f"{os.getpid()} 接客")
        time.sleep(random.randint(1,3))
    
    if __name__ == '__main__':
        # p = ProcessPoolExecutor()
        # for i in range(30):
        #     p.submit(task,1)
        t = ThreadPoolExecutor()
        for i in range(200):
            t.submit(task,i)
    
  • 相关阅读:
    人生长度的认识(死亡方格)
    如何才能更早的有自己的一点成就
    自制Jquery下拉框插件
    自定义Jquery 下拉框
    自定义Jquery分页插件
    Java 连接 mysql 数据库
    Git 操作分支
    CSS 循环动画效果。
    React 从0开始 消息传递
    MVC in Javascript
  • 原文地址:https://www.cnblogs.com/alex3174/p/11403107.html
Copyright © 2011-2022 走看看