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模块提供了很多同步原语,包括信号量,条件变量,事件和锁.如果可以使用这些原语的话,应该优先考虑使用这些 ...
随机推荐
- 浅谈Linux系统中如何查看进程
进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源.一般来说,Linux系统会在进程之间共享程序代码和系统函数库,所以在任何时刻内存中都只有代码的一份拷贝. 1,ps命令 作用:p ...
- 【翻译自mos文章】在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要"compat-libstdc++"包
在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要"compat-libstdc++"包 来源于: Installation of ...
- GridView分页的实现 ASP.NET c#(转)特好用
要在GridView中加入 //实现分页 AllowPaging="true" //一页数据10行 PageSize="10" // 分页时触发的事件OnPag ...
- Linux安装rpc监控系统资源
1.rpc服务需rsh的支持,一般情况下rsh已安装.rpm -qa rsh查看. 2.右键另存为http://heanet.dl.sourceforge.net/sourceforge/rstatd ...
- VC获得本机网络连接状态
/本机网络连接类型(成功) #define NET_TYPE_RAS_DIAL_UP_CONNECT_NET 0x01 //上网类型:采用RAS拨号连接上网 0x01 ...
- maven的多环境配置
<profiles> <profile> <id>dev</id> <activation> <activeByDefault> ...
- git 使gitnore立即生效
由于之前有些需要过滤的文件已经提交到版本库了,之后再想起来添加时候已经晚了,使用如下方法 Git忽略规则和.gitignore规则不生效的解决办法 Git忽略规则: 在git中如果想忽略掉某个文件 ...
- [Module] 08 - MVP by Mosby
From: Mosby MVP使用教程[作者用心] View是消极视图(Passive View), 它尽量不去主动做事, 让Presenter通过抽象方式控制View 例子: 例如Presenter ...
- UpLoader------实现上传大文件
代码: <div id="selectFile">选择文件1</div> <script> var da = newGuid(); var kk ...
- MySQL开发面试题
……继上一篇MySQL的开发总结之后,适当的练习还是很有必要的…… SQL语法多变,不敢保证唯一,也不敢保证全对,如果错误欢迎指出,即刻修改. 一.现有表结构如下图 TABLENAME:afinfo ...