並行実行
********

この章で記述されているモジュールは、コードの並行実行のサポートを提供し
ます。ツールの適切な選択は、実行されるタスク(IO bound vs CPU bound) や
推奨される開発スタイル (イベントドリブンな協調的マルチタスク vs プリエ
ンプティブマルチタスク) に依存します。ここに概観を示します:

* "threading" --- スレッドベースの並列処理

  * はじめに

  * GIL and performance considerations

  * リファレンス

    * Thread-local data

    * Thread objects

    * Lock objects

    * RLock objects

    * Condition objects

    * Semaphore objects

    * "Semaphore" example

    * Event objects

    * Timer objects

    * Barrier objects

  * "with" 文でのロック・条件変数・セマフォの使い方

* "multiprocessing" --- プロセスベースの並列処理

  * はじめに

    * "Process" クラス

    * コンテキストと開始方式

    * プロセス間でのオブジェクト交換

    * プロセス間の同期

    * プロセス間での状態の共有

    * ワーカープロセスのプールを使用

  * リファレンス

    * Global start method

    * "Process" クラスと例外

    * パイプ (Pipe) とキュー (Queue)

    * その他

    * Connection オブジェクト

    * 同期プリミティブ

    * 共有 "ctypes" オブジェクト

      * The "multiprocessing.sharedctypes" module

    * マネージャー

      * カスタマイズされたマネージャー

      * リモートマネージャーを使用する

    * Proxy オブジェクト

      * クリーンアップ

    * プロセスプール

    * リスナーとクライアント

      * アドレスフォーマット

    * 認証キー

    * ログ記録

    * The "multiprocessing.dummy" module

  * プログラミングガイドライン

    * すべての開始方式について

    * 開始方式が *spawn* および *forkserver* の場合

  * 使用例

* "multiprocessing.shared_memory" --- プロセス間で直接アクセス可能な共
  有メモリ

* "concurrent" パッケージ

* "concurrent.futures" --- 並列タスク実行

  * Executor オブジェクト

  * ThreadPoolExecutor

    * ThreadPoolExecutor の例

  * InterpreterPoolExecutor

  * ProcessPoolExecutor

    * ProcessPoolExecutor の例

  * Future オブジェクト

  * モジュール関数

  * 例外クラス

* "concurrent.interpreters" --- Multiple interpreters in the same
  process

  * Key details

  * はじめに

    * Multiple Interpreters and Isolation

    * Running in an Interpreter

    * Concurrency and Parallelism

    * Communication Between Interpreters

    * "Sharing" Objects

  * リファレンス

    * Interpreter objects

    * 例外

    * Communicating Between Interpreters

  * 基本的な使い方

* "subprocess" --- サブプロセス管理

  * Using the "subprocess" Module

    * よく使われる引数

    * Popen コンストラクター

    * 例外

  * セキュリティで考慮すべき点

  * Popen オブジェクト

  * Windows Popen ヘルパー

    * Windows Constants

  * 古い高水準 API

  * Replacing Older Functions with the "subprocess" Module

    * Replacing **/bin/sh** shell command substitution

    * シェルのパイプラインを置き換える

    * "os.system()" を置き換える

    * "os.spawn" 関数群を置き換える

    * Replacing "os.popen()"

  * レガシーなシェル呼び出し関数

  * 注釈

    * Timeout Behavior

    * Windows における引数シーケンスから文字列への変換

    * Disable use of "posix_spawn()"

* "sched" --- イベントスケジューラー

  * スケジューラオブジェクト

* "queue" --- 同期キュークラス

  * キューオブジェクト

    * Waiting for task completion

    * Terminating queues

  * SimpleQueue オブジェクト

* "contextvars" --- コンテキスト変数

  * コンテキスト変数

  * マニュアルでのコンテキスト管理

  * asyncio サポート

以下のモジュールは上記のサービスの一部で使われるサポートモジュールです
:

* "_thread" --- 低水準なスレッド API
