狠狠撸

狠狠撸Share a Scribd company logo
北京迅达云成科技有限公司 www.speedycloud.cn
北京迅达云成科技有限公司
www.speedycloud.cn
2015年9月 北京
WELCOME
浅析python多线程与多进程的使用
北京迅达云成科技有限公司 www.speedycloud.cn
为何要用多线程?
提高效率
北京迅达云成科技有限公司 www.speedycloud.cn
多线程 多进程
Code
Review
北京迅达云成科技有限公司 www.speedycloud.cn
上 当 了!
北京迅达云成科技有限公司 www.speedycloud.cn
什么是GIL?
In C-python, the global interpreter lock, or GIL, is a mutex that
prevents multiple native threads from executing Python byte-codes at
once. This lock is necessary mainly because C-Python’s memory
management is not thread-safe.(However, since the GIL exists, other
features have grown to depend on the guarantees that it enforces.)
GIL将会序列化线程,从而阻止线程并发
北京迅达云成科技有限公司 www.speedycloud.cn
多线程测试
北京迅达云成科技有限公司 www.speedycloud.cn
难道python多线程就没有一点卵用?
非 也
北京迅达云成科技有限公司 www.speedycloud.cn
好消息是
I/O密集型:
北京迅达云成科技有限公司 www.speedycloud.cn
IO 密集型执行时序图
北京迅达云成科技有限公司 www.speedycloud.cn
不幸的是
CPU密集型任务:多线程效率往往比单线程还低
北京迅达云成科技有限公司 www.speedycloud.cn
怎么破?
第一招
Ctypes
北京迅达云成科技有限公司 www.speedycloud.cn
怎么破?
第二招
multiprocessing
号外:multiprocessing.dummy
北京迅达云成科技有限公司 www.speedycloud.cn
踩过的坑
Join()
北京迅达云成科技有限公司 www.speedycloud.cn
踩过的坑
file discripter
在linux内,对所有设备或者文件的操作都是通过文件描述符进行
的
北京迅达云成科技有限公司 www.speedycloud.cn
北京迅达云成科技有限公司 www.speedycloud.cn
Thanks!
北京迅达云成科技有限公司
地址:北京市朝阳区酒仙桥路12号电子城科技大厦1112
网址:www.speedycloud.cn
电话: 400-6911-816
Ad

Recommended

浅析笔测迟丑辞苍多线程与多进程的使用
浅析笔测迟丑辞苍多线程与多进程的使用
Leo Zhou
?
理财机器人技术介绍与实作经验分享
理财机器人技术介绍与实作经验分享
Philip Zheng
?
容器式高效率 ChatBot 開發方法
容器式高效率 ChatBot 開發方法
Philip Zheng
?
骋谤补颈濒蝉敏捷项目开发
骋谤补颈濒蝉敏捷项目开发
Michael Yan
?
理财机器人技术介绍与实作经验分享
理财机器人技术介绍与实作经验分享
Philip Zheng
?
Trading bot演算法與軟工在程式交易上的實踐
Trading bot演算法與軟工在程式交易上的實踐
Philip Zheng
?
The Evolution of SpeedyCloud Resources Scheduling System
The Evolution of SpeedyCloud Resources Scheduling System
SpeedyCloud
?
Historia de seleccion de holanda
Tomas Echeverri Salazar
?
深入顿辞肠办别谤的资源管理
深入顿辞肠办别谤的资源管理
SpeedyCloud
?
Bloomingdales
Bloomingdales
Simran Parmar
?
Harlequin and the infinite space
Harlequin and the infinite space
June katz
?
New Series and follow up on previous series
New Series and follow up on previous series
June katz
?
SpeedyCloud 云计算平台资源调度系统要点解析
SpeedyCloud 云计算平台资源调度系统要点解析
SpeedyCloud
?
选型指南:颁诲苍系统中诲苍蝉的设计与研发
选型指南:颁诲苍系统中诲苍蝉的设计与研发
SpeedyCloud
?
运维?KVM & OpenVZ & Docker
运维?KVM & OpenVZ & Docker
SpeedyCloud
?
When In Rome (2010)
When In Rome (2010)
nughinafiqah
?
Fashion forecasting
Fashion forecasting
Simran Parmar
?
Ahmed Kamal CV
Ahmed Kamal CV
Ahmed Kamal
?
How to Use Multi-thread & Multi-process in Python
How to Use Multi-thread & Multi-process in Python
SpeedyCloud
?
Resource Management of Docker
Resource Management of Docker
SpeedyCloud
?
Modelo atómico demócrito
Tomas Echeverri Salazar
?
教育交互直播的技术难点与架构探索 @ 见云沙龙
教育交互直播的技术难点与架构探索 @ 见云沙龙
SpeedyCloud
?

More Related Content

Viewers also liked (14)

深入顿辞肠办别谤的资源管理
深入顿辞肠办别谤的资源管理
SpeedyCloud
?
Bloomingdales
Bloomingdales
Simran Parmar
?
Harlequin and the infinite space
Harlequin and the infinite space
June katz
?
New Series and follow up on previous series
New Series and follow up on previous series
June katz
?
SpeedyCloud 云计算平台资源调度系统要点解析
SpeedyCloud 云计算平台资源调度系统要点解析
SpeedyCloud
?
选型指南:颁诲苍系统中诲苍蝉的设计与研发
选型指南:颁诲苍系统中诲苍蝉的设计与研发
SpeedyCloud
?
运维?KVM & OpenVZ & Docker
运维?KVM & OpenVZ & Docker
SpeedyCloud
?
When In Rome (2010)
When In Rome (2010)
nughinafiqah
?
Fashion forecasting
Fashion forecasting
Simran Parmar
?
Ahmed Kamal CV
Ahmed Kamal CV
Ahmed Kamal
?
How to Use Multi-thread & Multi-process in Python
How to Use Multi-thread & Multi-process in Python
SpeedyCloud
?
Resource Management of Docker
Resource Management of Docker
SpeedyCloud
?
Modelo atómico demócrito
Tomas Echeverri Salazar
?
教育交互直播的技术难点与架构探索 @ 见云沙龙
教育交互直播的技术难点与架构探索 @ 见云沙龙
SpeedyCloud
?
深入顿辞肠办别谤的资源管理
深入顿辞肠办别谤的资源管理
SpeedyCloud
?
Harlequin and the infinite space
Harlequin and the infinite space
June katz
?
New Series and follow up on previous series
New Series and follow up on previous series
June katz
?
SpeedyCloud 云计算平台资源调度系统要点解析
SpeedyCloud 云计算平台资源调度系统要点解析
SpeedyCloud
?
选型指南:颁诲苍系统中诲苍蝉的设计与研发
选型指南:颁诲苍系统中诲苍蝉的设计与研发
SpeedyCloud
?
运维?KVM & OpenVZ & Docker
运维?KVM & OpenVZ & Docker
SpeedyCloud
?
How to Use Multi-thread & Multi-process in Python
How to Use Multi-thread & Multi-process in Python
SpeedyCloud
?
Resource Management of Docker
Resource Management of Docker
SpeedyCloud
?
Modelo atómico demócrito
Tomas Echeverri Salazar
?
教育交互直播的技术难点与架构探索 @ 见云沙龙
教育交互直播的技术难点与架构探索 @ 见云沙龙
SpeedyCloud
?

浅析笔测迟丑辞苍多线程与多进程的使用