博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
并发编程之线程池进程池
阅读量:4318 次
发布时间:2019-06-06

本文共 966 字,大约阅读时间需要 3 分钟。

目录

线程池与进程池

池:表示容器。线程池就是存放线程的容器,进程池就是存放进程的容器

为什么要存放到线程池、进程池中

  1. 避免频繁的创建和销毁(进程、线程)来的资源开销
  2. 可以限制同时存在的线程数量,以保证服务器不会因为资源不足而崩溃
  3. 帮我们管理了线程的创建和销毁
  4. 管理了任务的分配

进程池:

# 进程池from concurrent.futures import ProcessPoolExecutorfrom multiprocessing import Processimport osimport timedef task():    time.sleep(0.1)    print(os.getpid())if __name__ == '__main__':    pool = ProcessPoolExecutor(3)    # 提交任务到池子中    pool.submit(task)    # time.sleep(1)    pool.submit(task)
147332147320

线程池:

# 线程池from concurrent.futures import ThreadPoolExecutorfrom threading import  active_count,enumerate,currentThreadimport osimport timedef task():    print(currentThread().name)# 创建线程池pool = ThreadPoolExecutor(3)# 提交任务到池子中pool.submit(task)pool.submit(task)print(f"{enumerate()}")print(f"{active_count()}")
ThreadPoolExecutor-0_0ThreadPoolExecutor-0_0[<_MainThread(MainThread, started 135020)>, 
,
]3

如果主进程不结束,池子里面的进程或线程,也是一直存活的

转载于:https://www.cnblogs.com/plf-Jack/p/11139895.html

你可能感兴趣的文章
@ServletComponentScan ,@ComponentScan,@Configuration 解析
查看>>
unity3d 射弹基础案例代码分析
查看>>
thinksns 分页数据
查看>>
os模块
查看>>
LINQ to SQL vs. NHibernate
查看>>
基于Angular5和WebAPI的增删改查(一)
查看>>
windows 10 & Office 2016 安装
查看>>
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
团队编程项目作业2-团队编程项目开发环境搭建过程
查看>>
Stax解析XML示例代码
查看>>
cookie
查看>>
二级图片导航菜单
查看>>
<Using parquet with impala>
查看>>
07-Java 中的IO操作
查看>>
uclibc,eglibc,glibc之间的区别和联系【转】
查看>>