並行執行 (Concurrent Execution)
*******************************

本章節描述的模組在程式的並行執行上提供支援。選擇要使用哪一個工具則取決
於是執行什麼樣的任務（CPU 密集或 IO 密集）與偏好的開發風格（事件驅動協
作式多工處理或搶占式多工處理）。以下為此章節總覽：

* "threading" --- 基于线程的并行

  * 线程本地数据

  * 线程对象

  * 锁对象

  * RLock 物件

  * 条件对象

  * 信号量对象

    * "Semaphore" 範例

  * 事件对象

  * 定时器对象

  * 栅栏对象

  * 在 "with" 语句中使用锁、条件和信号量

* "multiprocessing" --- 基于进程的并行

  * 簡介

    * "Process" 类

    * 上下文和启动方法

    * 在进程之间交换对象

    * 进程间同步

    * 进程间共享状态

    * 使用工作进程

  * 参考

    * "Process" 與例外

    * 管道和队列

    * 杂项

    * 连接对象（Connection）

    * 同步原语

    * 共享 "ctypes" 对象

      * "multiprocessing.sharedctypes" 模块

    * 管理器

      * 自定义管理器

      * 使用远程管理器

    * 代理对象

      * 清理

    * 进程池

    * 监听器及客户端

      * 地址格式

    * 认证密码

    * 日志记录

    * "multiprocessing.dummy" 模块

  * 编程指导

    * 所有start方法

    * *spawn* 和 *forkserver* 启动方式

  * 範例

* "multiprocessing.shared_memory" --- 可跨进程直接访问的共享内存

* "concurrent" 包

* "concurrent.futures" -- 啟動平行任務

  * Executor 物件

  * ThreadPoolExecutor

    * ThreadPoolExecutor 範例

  * ProcessPoolExecutor

    * ProcessPoolExecutor 範例

  * Future 物件

  * 模組函式

  * 例外類別

* "subprocess" --- 子进程管理

  * 使用 "subprocess" 模块

    * 常用参数

    * Popen 构造函数

    * 例外

  * 安全考量

  * Popen 对象

  * Windows Popen 助手

    * Windows 常数

  * 较旧的高阶 API

  * 使用 "subprocess" 模块替换旧函数

    * 替代 **/bin/sh** shell 命令替换

    * 替代 shell 管道

    * 替代 "os.system()"

    * 替代 "os.spawn" 函数族

    * 替代 "os.popen()", "os.popen2()", "os.popen3()"

    * 替换来自 "popen2" 模块的函数

  * 旧式的 Shell 发起函数

  * 註解

    * 在 Windows 上将参数列表转换为一个字符串

    * 禁用 "vfork()" 或 "posix_spawn()"

* "sched" --- 事件调度器

  * 调度器对象

* "queue" --- 同步佇列 (queue) class（類別）

  * 佇列物件

  * SimpleQueue 物件

* "contextvars" --- 上下文变量

  * 上下文变量

  * 手动上下文管理

  * asyncio 支持

以下是支援部份上述服務的模組：

* "_thread" --- 底层多线程 API
