python多线程库_Python多线程常用包对比
python由于本身的特质,不能实现真正的多核并行运算,但是有一些第三方库较好地模拟了在多核环境下的并行运算,例如pp包以及multiprocessing,那么哪种更能充分利用多核心呢?
这里我简单做下对比,首先放上结论:multiprocessing是最优秀的。
在实测过程中,我的CPU是4核8线程,multiprocessing能充分利用多核运算优势,使得每一颗CPU核心的负载基本相当,并且能够在8个进程核心上负载相当,总体上占满CPU性能,而pp包只能利用好4颗物理核心,对剩下的4个虚拟核心基本无视。
下面的示例代码,供大家运行参考:
import multiprocessing
import time
import pp
def func(N):
sum = 0
for i in xrange(N):
sum += i
return sum
if __name__ == "__main__":
multiprocessing.freeze_support()
start = time.clock()
for i in xrange(200000):
sum = func(10000)
print ">> normal: ", time.clock()-start
start = time.clock()
pool = multiprocessing.Pool(processes=8)
jobs = []
for i in xrange(200000):
jobs.append(pool.apply_async(func, (10000, )))
pool.close()
pool.join()
print ">> multiprocessing: ", time.clock() - start
start = time.clock()
jobs = []
job_server = pp.Server()
job_server.set_ncpus(8)
for i in xrange(200000):
jobs.append(job_server.submit(func, (10000, )))
job_server.wait()
print ">> pp: ", time.clock() - start
job_server.print_stats()
python多线程库_Python多线程常用包对比相关推荐
- python多线程库_python多线程库
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python 多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点:使 ...
- python自动化库_Python自动化测试常用库整理
基本库: sys 程序和Python解析器的交互 os 启动新进程:操作文件和目录 re 正则表达式,字符串匹配 string 基本字符串操作 inspect 提供自省和反射功能 importlib ...
- python信号处理库_Python标准库07 信号 (signal包,部分os包)(转载)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux的信号基础之后,Python标准库中的signal包就很容易学习 ...
- Python标准库07 信号 (signal包,部分os包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux的信号基础之后,Python标准库中的signal包就很容易学习 ...
- python多线程输出_Python多线程
多线程基础概念 并行与并发 并行:同时处理多个任务,必须在多核环境下 一段时间内同时处理多个任务,单核也可以并发 并发手段 线程:内核空间的调度 进程:内核空间的调度 协程:用户空间的调度 线程可以允 ...
- python多线程执行_python多线程实现同时执行两个while循环
如果想同时执行两个while True循环,可以使用多线程threading来实现. 完整代码 #coding=gbk from time import sleep, ctime import thr ...
- 列出5个python标准库_Python常用标准库使用(一)
自学python一段时间,之前总是学习基本语法,对Python标准库没怎么接触,所以计划从常用的标准库开始,大体了解一遍,下面是学习过程中的笔记. 一.OS模块 主要对目录.或者文件操作.常用方法如下 ...
- python线程唤醒_python 多线程
python 多线程 真正的多线程吗? 对于多核处理器,在同一时间确实可以多个线程独立运行,但在Python中确不是这样的了.原因在于,python虚拟机中引入了GIL这一概念.GIL(Global ...
- python线程创建对象_Python多线程编程基础:如何创建线程?
Python标准库threading中的Thread类用来创建和管理线程对象,支持使用两种方法来创建线程: 1)直接使用Thread类实例化一个线程对象并传递一个可调用对象作为参数: 2)继承Thre ...
最新文章
- mysql基础之视图
- 对面向接口编程、按分层建项目的反思和新的分层结构思路
- Linux下对Verilog文件进行leda检错
- leetcode 200. Number of Islands | 200. 岛屿数量(Java)
- Win7 路由上网DNS服务器ping不通的解决方法
- 在layui中使用 jquery 触发select 的 change事件无效
- HarmonyOS分布式软总线研究,【钟洪发老师公开课】实战学习HarmonyOS重点之分布式软总线...
- Python风格总结:列表List
- 为已经安装nginx添加php模块,安装成功的nginx如何添加未编译安装模块
- 如何处理 Kubeadm 搭建的集群证书过期问题
- 网络游戏行业按20%的税率缴个人所得税?每百万要上缴20万怎么节税
- 快速傅里叶变换(FFT):蝶形算法(CT蝴蝶、GS蝴蝶)
- Android多媒体开发框架
- java jsp使用flash播放mp4,(jsp/html)网页上嵌入播放器(常用播放器代码整理)
- 网络语言上多个C是什么意思,今年流行的网络用语,个个都很有意思,你知道几个呢?...
- 深度学习 Day 8——解决GIF生成错误以及有关GAN过程问题
- 解决报错 We‘re sorry but doesn‘t work properly without JavaScript enabled. Please enable it to continue.
- 【随机过程】作业 5 布朗Brown运动
- CentOS磁盘空间爆满问题排查
- Plotly中绘制三种经典的股票交易图表(含视频讲解)
热门文章
- ALEIDoc EDI(7)--IDoc Extension
- 欧锦赛球星谱:帕克领豪阵 诺天王对决加索尔
- 看图说话:你不了解的OA与SAP集成
- 数字新消费重塑新中部,岳麓峰会再汇“长沙内能”
- python封装举例_Python面向对象封装操作案例详解
- javaconfig配置mysql_spring cloud config使用mysql存储配置文件
- hive substr函数_数据分析工具篇——HQL函数及逻辑
- 脚本中的关于‘/xff‘字符记录
- 【Python教程】类及对象教程
- Python | 除法