Python并行编程的几个要点
一、基于线程的并行编程
- 如何使用Python的线程模块
- 如何定义一个线程
- 如何探测一个线程
- 如何在一个子类中使用线程
Lock和RLock实现线程同步- 信号实现线程同步
- 条件(condition)实现线程同步
- 事件(event)实现线程同步
- 如何使用
with语句 - 使用队列实现线程消息传递
- 如何评估多线程应用的性能
- 兑现成编程的危险
二、基于进程的并行编程
- 如何使用Python的
multiprocessing模块 - 如何生成一个进程
- 如何命名一个进程
- 如何在后台运行一个进程
- 如何杀死一个进程
- 如何在子类中使用进程
- 如何在进程间交换对象
- 使用队列在进程间交换对象
- 使用管道在进程间交换对象
- 如何实现进程同步
- 如何管理不同进程间的状态
- 如何使用进程池
- 如何使用Python的
mpi4py模块 - 端到段通信
- 避免死锁问题
- 使用广播(broadcast)进行集体间通信
- 使用散点(scatter)函数进行集体间通信
三、异步编程
- 如何使用
concurrent.futures模块 Asyncio事件循环管理Asyncio处理协程Asyncio任务管理- Dealing with Asyncio and Futures
- Gevent
- Tornado
- Twsited
四、分布式Python
- 使用Celery分布任务
- 如何通过Celery创建任务
- SCOOP科学计算
- SCOOP处理map函数
- Pyro4远程方法调用
- Pyro4对象组链
- 使用Pyro4开发客户/服务应用
- PyCSP进程序列化通信
- Disco的MapReduce使用
- RPyC远程程序调用
参考:
- 《Python Parallel Programming Cookbook》
- https://www.quora.com/What-are-some-of-the-asynchronous-frameworks-in-Python
Python并行编程的几个要点的更多相关文章
- python并行编程
一.编程思想 并行编程的思想:分而治之,有两种模型 1.MapReduce:将任务划分为可并行的多个子任务,每个子任务完成后合并得到结果 例子:统计不同形状的个数. 先通过map进行映射到多个子任务, ...
- Python并行编程(十四):异步编程
1.基本概念 除了顺序执行和并行执行的模型以外,还有异步模型,这是事件驱动模型的基础.异步活动的执行模型可以只有一个单一的主控制流,能在单核心系统和多核心系统中运行. 在并发执行的异步模型中,许多任务 ...
- Python并行编程(二):基于线程的并行
1.介绍 软件应用中使用最广泛的并行编程范例是多线程.通常一个应用有一个进程,分成多个独立的线程,并行运行.互相配合,执行不同类型的任务. 线程是独立的处理流程,可以和系统的其他线程并行或并发地执行. ...
- python并行编程学习之绪论
计算机科学的研究,不仅应该涵盖计算处理所基于的原理,还因该反映这些领域目前的知识状态.当今,计算机技术要求来自计算机科学所有分支的专业人员理解计算机处理的基础的关键,在于知道软件和硬件在所有层面上的交 ...
- Python并行编程(十一):基于进程的并行
1.基本概念 多进程主要用multiprocessing和mpi4py这两个模块. multiprocessing是Python标准库中的模块,实现了共享内存机制,可以让运行在不同处理器核心的进程能读 ...
- Python并行编程(十三):进程池和mpi4py模块
1.基本概念 多进程库提供了Pool类来实现简单的多进程任务.Pool类有以下方法: - apply():直到得到结果之前一直阻塞. - apply_async():这是apply()方法的一个变体, ...
- Python并行编程(十二):进程同步
1.基本概念 多个进程可以协同工作来完成一项任务,通常需要共享数据.所以在多进程之间保持数据的一致性就很重要,需要共享数据协同的进程必须以适当的策略来读写数据.同步原语和线程的库类似. - Lock: ...
- Python并行编程(十):多线程性能评估
1.基本概念 GIL是CPython解释器引入的锁,GIL在解释器层面阻止了真正的并行运行.解释器在执行任何线程之前,必须等待当前正在运行的线程释放GIL,事实上,解释器会强迫想要运行的线程必须拿到G ...
- Python并行编程(九):线程通讯queue
1.基本概念 当线程之间要共享资源或数据的时候,可能变的非常复杂.Python的threading模块提供了很多同步原语,包括信号量,条件变量,事件和锁.如果可以使用这些原语的话,应该优先考虑使用这些 ...
随机推荐
- 【伪装位置神器】神行者AnyLocation 1.3.0001可用于微信,陌陌
<ignore_js_op> 软件名称:神行者(破解)软件版本:v1.3.0001授权类别:免费测试机型:大可乐手机 下载链接: http://pan.baidu.com/s/1qWwSM ...
- Unable to resolve target 'android-9'
右键项目文件--->properties--->android 选择对应版本 保存 如还不生效 打开项目文件project.properties ,修改 target=android-1 ...
- geoserver 数据图层输出格式
1.WMS服务请求参数 一般WMS的请求地址如下: http://localhost:8080/geoserver/topp/wms?service=WMS&versi on=1.1.0&am ...
- JSP判断闰年
闰年条件: 能被4整除但不能被100整除 能被400整除 <%@ page language="java" import="java.util.*" co ...
- Linux下php安装Redis安装
1. 下载 redis-2.4.14.tar.gz 2. 解压 tar -zxvf redis-2.4.14.tar.gz 3.cd redis-2.4.14 4. make 注意:出错 1. CC ...
- position absolute定位之所属的containing box
http://www.w3.org/TR/CSS2/visudet.html#containing-block-details http://www.zhihu.com/question/199267 ...
- AWS系列-创建 IAM 用户
创建 IAM 用户(控制台) 官方文档 https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/introduction.html 通过 AWS ...
- xcode 5.1打包iOS 7.1应用问题笔记
XCODE 5.1默认情况下是要求应用都通过64位编译.但是往往有些第三方的类库还是32位.还木有更新64位类库.使得项目编译出错. 解决办法: BuildSetting 的Valid Archite ...
- 解决app频繁更新方案
目前由于我们项目的特定场景,app的主要问题在于如何做到可以频繁更新而不需要频繁发布,尤其是ios,发布app store的周期基本上是2周左右,虽然可以通过企业号解决,但是后期的打包,分发给用户仍较 ...
- Linux 查看目录大小及文件数量命令
查看当前目录大小: [root@21andy.com]# du -sh 查看指定目录大小: [root@21andy.com]# du -sh /www/21andy.com 查看当前目录文件总数: ...