python中的多线程与多进程
来源:互联网 发布:对淘宝美工课的认知 编辑:程序博客网 时间:2024/05/22 12:57
对于计算密集型任务来说,将cpu的效率发挥到100%是最理想的情况。而对于IO密集型任务来说则不需要占用太多CPU。
单个进程中可以同时启动多个线程,但多个线程同时共享同一个cpu核,所以对于计算密集型任务来说,使用多进程才能将cpu效率发挥至最高
参考如下两个例子启动多进程与多线程:
# 多线程from multiprocessing import poolimport osimport timeimport numpy as npdef worker(id): print "worker" for i in range(1000000): np.sqrt(i**2) print str(os.getpid())+"\t"+str(id) print "end worker"iters = range(10)time1 = time.asctime()pool = pool.ThreadPool(10)num = pool.map(worker, iters)pool.close()pool.join()print time1print time.asctime()
# 多进程import multiprocessingimport timeimport osimport numpy as npdef worker(id): print "worker" for i in range(1000000): np.sqrt(i**2) print str(os.getpid())+"\t"+str(id) print "end worker"if __name__ == "__main__": pool = multiprocessing.Pool(processes=10) time1 = time.asctime() nb = range(10) pool.map(worker, nb) pool.close() pool.join() print time1 print time.asctime()
上面两个程序唯一的差别在于pool是用multiprocessing.pool.ThreadPool还是multiprocessing.Pool,用后者即实现了多进程。对比时间发现,后一个程序的运行时间是前一个时间的cpu数量分之一。
另外,进程启动数量并非越多越好,这取决于计算机的真正物理核数量,而不是虚拟线程数,获取方式为multiprocessing.cpu_count()/2。
阅读全文
0 0
- 【Python】Python中的多线程与多进程
- Python中的多进程与多线程
- python中的多线程与多进程
- Python多线程与多进程
- Python多线程与多进程
- python多线程与进程
- Python中的GIL、多进程和多线程
- python中的多线程和多进程
- Python中的多进程和多线程
- Python的多线程与多进程实践
- python 多进程开发与多线程开发
- python多进程与多线程学习总结
- python多进程与多线程比较
- PHP中的(伪)多线程与多进程
- PHP中的(伪)多线程与多进程
- Android中的多进程与多线程通讯
- python 多线程多进程
- python多线程、多进程
- Android 中TabLayout实现Tab自定义和选中文字加粗
- 单机服务器支持千万级并发长连接的压力测试
- 公有云、私有云、混合云之间的区别,你知道吗?
- Android ListView 常见问题记录
- 完全卸载oracle11g步骤
- python中的多线程与多进程
- 视频编解码,FFMPEG,RTP问题汇总
- [linux学习笔记]之一:ubuntu ch340调试备忘
- NSAttributedString文本属性设置的使用
- iOS 之xcode报错指南/打包ipa /archive /CommandB编译错误/ 上传APPstore错误
- 为什么oracle中字段是varchar型,但是查询的时候不写引号也能查询
- 安卓同一个程序通过build Variants创建不同的网络环境
- Git命令整理
- Hibernate--实体类与表映射01