核心思想

以时间换空间

进程池

进程池:一个容器,这个容器限制住你开启进程的数量,默认是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)

转载于:https://www.cnblogs.com/alex3174/p/11403107.html

并发编程--线程池与进程池相关推荐

  1. 05 Python 并发编程(管道,事件,信号量,进程池)

    管道 Conn1,conn2 = Pipe() Conn1.recv() Conn1.send() 数据接收一次就没有了 from multiprocessing import Process,Pip ...

  2. 8-26-GLI锁与普通互斥锁、死锁问题、递归锁、信号量、Event事件、并发的tcp通信、进程池线程池

    昨日回顾1 生产者消费者-在生产者和消费者之间,通过队列,增加缓冲,避免了生产者和消费者之间交互-Queue,redis,rabbitmq,kafka-解耦合,队列是微服务的基础2 线程理论,开启-进 ...

  3. Java 并发编程 -- 线程池源码实战

    一.概述 小编在网上看了好多的关于线程池原理.源码分析相关的文章,但是说实话,没有一篇让我觉得读完之后豁然开朗,完完全全的明白线程池,要么写的太简单,只写了一点皮毛,要么就是是晦涩难懂,看完之后几乎都 ...

  4. python线程池操作_python线程池和进程池

    线程池和进程池 开局来张图 使用线程池的好处 1.提升性能:因为减去了大量新建.终止线程的开销,重用了线程资源 2.使用场景:适合处理突发性大量请求或需要大量线程完成任务.但实际任务处理时间较短 3. ...

  5. Python线程池与进程池

    Python线程池与进程池 前言 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识 ...

  6. 池技术:连接池,线程池,内存池,进程池等汇总分析

    引言 在软件开发中,经常会遇到需要频繁创建和销毁某些资源的情况.这些资源可能是内存.线程.数据库连接等.频繁地创建和销毁资源可能导致性能下降和资源浪费.为了解决这些问题,软件开发者设计了一种称为&qu ...

  7. 5,线程池,进程池,协程,IO模型

    今日内容: 1,线程池 2,进程池 3,协程 4,IO 模型 服务端要满足这三个条件: 1,24小时不间断的提供服务 2,能够支持高并发 3,要有固定的IP地址和端口在服务端这个地方会出现阻塞态情况: ...

  8. Python 之并发编程之manager与进程池pool

    一.manager 常用的数据类型:dict list 能够实现进程之间的数据共享 进程之间如果同时修改一个数据,会导致数据冲突,因为并发的特征,导致数据更新不同步. def work(dic, lo ...

  9. 内存池、进程池、线程池

    池的概念 由于服务器的硬件资源"充裕",那么提高服务器性能的一个很直接的方法就是以空间换时间,即"浪费"服务器的硬件资源,以换取其运行效率.这就是池的概念.池是 ...

  10. Python线程池、进程池的介绍与使用

    文章目录 1.问题背景 2.单线程→\rightarrow→多线程→\rightarrow→线程池 2.1单线程简介 2.2多线程简介 2.3线程池介绍 2.3.1复用线程 2.3.2线程池的使用 3 ...

最新文章

  1. 用python3实现指定目录下文件sha256及文件大小统计
  2. Android如何使用so文件和Android studio中导入so
  3. geojson地图_ThingJS的三维城市地图搭建逻辑解析
  4. 使用VAE、CNN encoder+孤立森林检测ssl加密异常流的初探——真是一个忧伤的故事!!!...
  5. Salesforce Service Cloud 十大功能亮点
  6. html的head中的常见元素
  7. 如何把a1的图纸变成a0_如何安装家用空开配电
  8. C语言和JAVA可以互相转换吗,求助大神!!!JAVA转换成C语言
  9. 现代程序设计 作业5
  10. 腾讯视频视频下载_如何下载腾讯视频
  11. JDK中AbstractQueuedSynchronizer应用解析
  12. 拓端tecdat|在R语言中用模拟探索回归的P值
  13. mysql安装+navicat激活
  14. python制作一个简单的“一键死机”白屏小程序
  15. 学生卡变成普通卡_15日前不审验 学生卡变成普通卡
  16. 大班运用计算机教学案例,【大班教学案例】_幼儿园大班教学案例:《让孩子在自主探索中获取成功》...
  17. 如何让Arduino IDE支持你手里的STM32 nucleo开发板
  18. 【CSS Selector】小猪网短租房(Python R)
  19. cdma特有效应_CDMA复习考试题答案
  20. xilinx vivado 百度云分享 vitis vivado 2019.2 2019.1 2018.3 2018.2 2017.4 (包含license)

热门文章

  1. Mysql索引命中问题
  2. CTF-i春秋网鼎杯第一场misc部分writeup
  3. Python看似简单的地方——关于全局变量与局部变量
  4. struts导入Excel进行解析
  5. php+mysqli实现批量执行插入、更新及删除数据的方法
  6. JSP具体条款——response对象
  7. 将今天写进历史,即可得出现在的世界是数字的
  8. [转帖]Mootools源码分析-04 -- Array
  9. sklearn快速入门教程 -- 机器学习工具的快速入门指引
  10. angular 控件css_Angular 4 设置组件样式的几种方式