python深入系列(三):python并行编程

1、Lock和RLock

Lock:基本锁,只能加一次,加锁之后其余锁请求处于锁释放的等待中
RLock:Reentant Lock,可重入锁,可多次请求锁对应需要多次释放,这个重入是对单个线程而言,指一个线程可以多次请求锁而不被阻塞

2、线程交互对象

锁(Lock、RLock)、信号量(Semaphore)、条件(Condition)、事件(Event)、队列(Queue)、障碍(Barrier,等待线程数达到数量解封)

3、进程交互对象

队列(Queue)、管道(Pipe)、锁(Lock、RLock)、信号量(Semaphore)、条件(Condition)、事件(Event)、障碍(Barrier,等待进程数达到数量解封)、状态管理(Manager)、进程池(Pool)

4、MPI

mpi4py库, 没使用过,待补充...

5、cocurrent.futures模块

提供了线程池和进程池

6、Asyncio模块

事件循环、协程(@asyncio.coroutine)、Futures(asyncio.Future,和cocurrent.futures.Future,针对Asyncio事件循环做了很多定制)、Tasks(asyncio.Task)

7、分布式编程

Celery、SCOOP、Pyro4(远程方法调用)、PyCSP(通信顺序进程)、Disco(MapReduce)、RPyC(远程调用)

8、GPU编程

  • GPU特点是架构高度并行,擅长快速处理超大数据集
  • CUDA、OpenCL

9、避免GIL副作用

使用进程、numexpr、Cython(C语言扩展)、分布式计算模型等

(持续更新......)

——————————————————————————————

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容