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语言扩展)、分布式计算模型等
(持续更新......)
——————————————————————————————
- 注:详细概念查看《python并行编程》