一、基於線程的並行編程
- 如何使用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