zoukankan      html  css  js  c++  java
  • 线程池与进程池

    线程池与进程池

    ​ 为什么要装到容器中

    1. 可以避免频繁的创建和销毁(进程/线程)来的资源开销
    2. 可以限制同时存在的线程数量 以保证服务器不会应为资源不足而导致崩溃
    3. 帮我们管理了线程的生命周期
    4. 管理了任务的分配
    from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
    from threading import activeCount,enumerate,current_thread
    
    #创建线程池
    pool = ThreadPoolExecutor(2)	#同时并发线程最大数maxsize=2
    
    def task():
        print(current_thread().name)
    
    #提交任务并执行
    pool.submit(task)
    pool.submit(task)
    pool.submit(task)
    
    print(enumerate())	#获取当前主线程以及进程池中的两个线程的列表
    #[<_MainThread(MainThread, started 776)>, <Thread(ThreadPoolExecutor-0_0, started daemon 23300)>, <Thread(ThreadPoolExecutor-0_1, started daemon 
    22924)>]
    
    
    #创建进程池
    def task():
        time.sleep(1)
        print(os.getpid())
    
    
    if __name__ == '__main__':
        #进程池
        pool = ProcessPoolExecutor(2)
        pool.submit(task)
        pool.submit(task)
        pool.submit(task)
    
  • 相关阅读:
    Eclipse 代码模板
    Eclipse 安装插件
    Eclipse 任务管理
    Eclipse 添加书签
    Eclipse 重构菜单
    Eclipse 浏览(Navigate)菜单浏览 Eclipse 工作空间
    Eclipse 查找
    Eclipse 悬浮提示
    Eclipse 快速修复
    Eclipse 内容辅助
  • 原文地址:https://www.cnblogs.com/bruce123/p/11184429.html
Copyright © 2011-2022 走看看