17. 並行実行
************

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

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

  * 17.1.1. スレッドローカルデータ

  * 17.1.2. Thread オブジェクト

  * 17.1.3. Lock オブジェクト

  * 17.1.4. RLock オブジェクト

  * 17.1.5. Condition オブジェクト

  * 17.1.6. Semaphore オブジェクト

    * 17.1.6.1. "Semaphore" の例

  * 17.1.7. Event オブジェクト

  * 17.1.8. Timer オブジェクト

  * 17.1.9. バリアオブジェクト

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

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

  * 17.2.1. はじめに

    * 17.2.1.1. "Process" クラス

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

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

    * 17.2.1.4. プロセス間の同期

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

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

  * 17.2.2. リファレンス

    * 17.2.2.1. "Process" クラスと例外

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

    * 17.2.2.3. その他

    * 17.2.2.4. Connection オブジェクト

    * 17.2.2.5. 同期プリミティブ

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

      * 17.2.2.6.1. "multiprocessing.sharedctypes" モジュール

    * 17.2.2.7. マネージャー

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

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

    * 17.2.2.8. Proxy オブジェクト

      * 17.2.2.8.1. クリーンアップ

    * 17.2.2.9. プロセスプール

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

      * 17.2.2.10.1. アドレスフォーマット

    * 17.2.2.11. 認証キー

    * 17.2.2.12. ログ記録

    * 17.2.2.13. "multiprocessing.dummy" モジュール

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

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

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

  * 17.2.4. 使用例

* 17.3. "concurrent" パッケージ

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

  * 17.4.1. Executor オブジェクト

  * 17.4.2. ThreadPoolExecutor

    * 17.4.2.1. ThreadPoolExecutor の例

  * 17.4.3. ProcessPoolExecutor

    * 17.4.3.1. ProcessPoolExecutor の例

  * 17.4.4. Future オブジェクト

  * 17.4.5. モジュール関数

  * 17.4.6. 例外クラス

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

  * 17.5.1. "subprocess" モジュールを使う

    * 17.5.1.1. よく使われる引数

    * 17.5.1.2. Popen コンストラクター

    * 17.5.1.3. 例外

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

  * 17.5.3. Popen オブジェクト

  * 17.5.4. Windows Popen ヘルパー

    * 17.5.4.1. 定数

  * 17.5.5. 古い高水準 API

  * 17.5.6. 古い関数を "subprocess" モジュールで置き換える

    * 17.5.6.1. /bin/sh シェルのバッククォートを置き換える

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

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

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

    * 17.5.6.5. "os.popen()", "os.popen2()", "os.popen3()" を置き換え
      る

    * 17.5.6.6. "popen2" モジュールの関数群を置き換える

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

  * 17.5.8. 注釈

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

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

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

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

  * 17.7.1. キューオブジェクト

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

* 17.8. "dummy_threading" --- "threading" の代替モジュール

* 17.9. "_thread" --- 低水準の スレッド API

* 17.10. "_dummy_thread" --- "_thread" の代替モジュール
