Python多任务处理(多进程篇)

项目地址:

https://github.com/tushushu/flying-python​github.com

多进程处理CPU密集型任务

CPU密集型任务的特点是要进行大量的计算,消耗CPU资源,比如计算圆周率、对视频进行高清解码等等,全靠CPU的运算能力。一个线程执行CPU密集型任务的时候,CPU处于忙碌状态,运行1000个字节码之后GIL会被释放给其他线程,加上切换线程的时间有可能会比串行代码更慢。在Python多任务处理(多线程篇),我们试图用多线程执行CPU密集型任务,然而并没有性能上的提升。现在我们试一下用多进程来处理CPU密集型任务。

1. 建立进程池

from 

2. 定义一个CPU密集型函数

该函数会对[1, x]之间的整数进行求和。

def 

3. 使用串行的方式处理

遍历一个列表的所有元素,执行func函数。

def 

4. 使用多进程处理

通过线程池的map方法,可以将同一个函数作用在列表中的所有元素上。

def 

5. 计算函数运行时间

  • 串行版本的运行时间5.7秒
  • 多进程版本的运行时间1.6秒
def 

Finish sum from 1 to 10000000!
Finish sum from 1 to 10000000!
Finish sum from 1 to 10000000!
Finish sum from 1 to 10000000!
Finish sum from 1 to 10000000!
Finish sum from 1 to 10000000!
Finish sum from 1 to 10000000!
Finish sum from 1 to 10000000!
process_array版本的运行时间为 5.74394 秒!

time_it(fast_process_array, [10**7 for _ in range(8)])

fast_process_array版本的运行时间为 1.62266 秒!

python多进程_Python多任务处理(多进程篇)相关推荐

  1. python 命令行运行 多进程_Python初学——多进程Multiprocessing

    1.1 什么是 Multiprocessing 多线程在同一时间只能处理一个任务. 可把任务平均分配给每个核,而每个核具有自己的运算空间. 1.2 添加进程 Process 与线程类似,如下所示,但是 ...

  2. python socket通信 多进程_python实现多进程通信实例分析

    操作系统会为每一个创建的进程分配一个独立的地址空间,不同进程的地址空间是完全隔离的,因此如果不加其他的措施,他们完全感觉不到彼此的存在.那么进程之间怎么进行通信?他们之间的关联是怎样的?实现原理是什么 ...

  3. python如何实现多进程_Python实现多进程的四种方式

    方式一: os.fork() # -*- coding:utf-8 -*- """ pid=os.fork() 1.只用在Unix系统中有效,Windows系统中无效 2 ...

  4. 简述python爬虫_python爬虫入门篇了解

    1. 爬虫分类: 1.1 通用爬虫:例如搜索引擎:无差别的收集数据:提取存储关键字:构建索引库:给用户提供搜索接口. 1.2 聚焦爬虫:有针对性的编写特定领域数据的爬取程序. 2. Robots协议: ...

  5. 为什么金融分析需要应用python语言_python入门第一篇:python语言简介

    四.Python发展史 1989年,Guido开始写Python语言的编译器. 1991年,第一个Python编译器诞生.它是用C语言实现的,并能够调用C语言的库文件.从一出生,Python已经具有了 ...

  6. python多进程怎么样_Python执行多进程任务的方法

    Python的多进程可以借助from multiprocessing import Pool来实现. 简而言之分为这样几步: 导入包from multiprocessing import Pool 编 ...

  7. 关于python的多线程和多进程_Python的多线程和多进程

    (1)多线程的产生并不是因为发明了多核CPU甚至现在有多个CPU+多核的硬件,也不是因为多线程CPU运行效率比单线程高.单从CPU的运行效率上考虑,单任务进程及单线程效率是最高的,因为CPU没有任何进 ...

  8. 【Python成长之路】python并发学习:多进程与多线程的用法及场景介绍

    刚开始学习Python 并发查询或者并发读写时,看到大神们说,多线程是python的鸡肋,要学就学多进程.好吧,我连多线程怎么写都不知道呢. 因此,就写了以下的示例代码.代码目的是将test.txt文 ...

  9. Python多线程threading和多进程multiprocessing的区别及代码实现

    1. 多线程threading import time from threading import Threaddef thread_read(data):while True:print('read ...

最新文章

  1. Web Farm Web Garden
  2. python语言怎么用-Python语言应用解析,如何入门学Python?
  3. linux断电关机后,进度条满后卡在那里
  4. 计算机视觉领域最全汇总(第2部分)
  5. ZooKeeper概述与原理
  6. js验证开始日期不能大于结束日期_js前台判断开始时间是否小于结束时间
  7. 技术人生——解决问题的规律
  8. 我们应该如何选择DR
  9. nginx -- 负载均衡
  10. ubuntu 安装mysql 5.5.28 编译安装 innodb 配置
  11. 复杂网络分析 02 复杂网络分析中的基本概念学习笔记
  12. 2022年Python最新面试题汇总及答案
  13. linux查看其他用户计划任务,Linux计划任务(crond、atd)
  14. 标题: Excel地址 Excel单元格的地址表示很有趣,它使用字母来表示列号。 比如, A表示第1列, B表示第2列, Z表示第26列, AA表示第27列, AB表示第28列, BA表示第53列
  15. 布局改变时的过场动画
  16. Scratch软件编程等级考试一级——20210320
  17. android 自定义indicator,Android实现自定义Indicator的导航控件
  18. python汽车类_用Python代码实现汽车类,类用,python
  19. 被高通裁员两次,清华毕业华裔工程师跳楼身亡!中年IT男,为何这么难?
  20. wps指定路径不存在怎么办_wps指定路径不存在怎么办_十万人都不知道键盘上 F1~F12 的作用,你肯定想不到......

热门文章

  1. spring中用到的9种设计模式
  2. dubbo服务降级与限流
  3. ForkJoin框架简单使用
  4. mongodb集群数据同步及故障演练
  5. docker cp :用于容器与主机之间的数据拷贝
  6. [UVA] 704 Colour Hash
  7. 搭建局域网YUM服务器
  8. 分析:苹果招GPU工程师并不是打算放弃英特尔
  9. Cocos2dx-Android 之Makefile通用高级写法
  10. 邮件实用技巧九:如何快速查看历史邮件