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

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

* "threading" --- Thread-based parallelism

  * Thread-Local Data

  * Thread Objects

  * Lock Objects

  * RLock Objects

  * Condition Objects

  * Semaphore Objects

    * "Semaphore" Example

  * Event Objects

  * Timer Objects

  * Barrier Objects

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

* "multiprocessing" --- Process-based parallelism

  * はじめに

    * "Process" クラス

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

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

    * プロセス間の同期

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

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

  * リファレンス

    * "Process" クラスと例外

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

    * その他

    * Connection オブジェクト

    * 同期プリミティブ

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

      * "multiprocessing.sharedctypes" モジュール

    * マネージャー

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

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

    * Proxy オブジェクト

      * クリーンアップ

    * プロセスプール

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

      * アドレスフォーマット

    * 認証キー

    * ログ記録

    * "multiprocessing.dummy" モジュール

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

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

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

  * 使用例

* "multiprocessing.shared_memory" --- Shared memory for direct access
  across processes

* "concurrent" パッケージ

* "concurrent.futures" --- Launching parallel tasks

  * Executor オブジェクト

  * ThreadPoolExecutor

    * ThreadPoolExecutor の例

  * ProcessPoolExecutor

    * ProcessPoolExecutor の例

  * Future オブジェクト

  * モジュール関数

  * 例外クラス

* "subprocess" --- Subprocess management

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

    * よく使われる引数

    * Popen コンストラクター

    * 例外

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

  * Popen オブジェクト

  * Windows Popen ヘルパー

    * Windows Constants

  * 古い高水準 API

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

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

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

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

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

    * Replacing "os.popen()", "os.popen2()", "os.popen3()"

    * Replacing functions from the "popen2" module

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

  * 注釈

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

    * Disabling use of "vfork()" or "posix_spawn()"

* "sched" --- Event scheduler

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

* "queue" --- A synchronized queue class

  * キューオブジェクト

  * SimpleQueue オブジェクト

* "contextvars" --- Context Variables

  * コンテキスト変数

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

  * asyncio サポート

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

* "_thread" --- Low-level threading API
