並行実行¶
この章で記述されているモジュールは、コードの並行実行のサポートを提供します。ツールの適切な選択は、実行されるタスク(IO bound vs CPU bound) や推奨される開発スタイル (イベントドリブンな協調的マルチタスク vs プリエンプティブマルチタスク) に依存します。ここに概観を示します:
threading
--- スレッドベースの並列処理active_count()
current_thread()
excepthook()
__excepthook__
get_ident()
get_native_id()
enumerate()
main_thread()
settrace()
settrace_all_threads()
gettrace()
setprofile()
setprofile_all_threads()
getprofile()
stack_size()
TIMEOUT_MAX
- スレッドローカルデータ
- Thread オブジェクト
- Lock オブジェクト
- RLock オブジェクト
- Condition オブジェクト
- Semaphore オブジェクト
- Event オブジェクト
- Timer オブジェクト
- バリアオブジェクト
with
文でのロック・条件変数・セマフォの使い方
multiprocessing
--- プロセスベースの並列処理multiprocessing.shared_memory
--- プロセス間で直接アクセス可能な共有メモリconcurrent
パッケージconcurrent.futures
--- 並列タスク実行subprocess
--- サブプロセス管理subprocess
モジュールを使う- セキュリティで考慮すべき点
- Popen オブジェクト
- Windows Popen ヘルパー
STARTUPINFO
- Windows Constants
STD_INPUT_HANDLE
STD_OUTPUT_HANDLE
STD_ERROR_HANDLE
SW_HIDE
STARTF_USESTDHANDLES
STARTF_USESHOWWINDOW
STARTF_FORCEONFEEDBACK
STARTF_FORCEOFFFEEDBACK
CREATE_NEW_CONSOLE
CREATE_NEW_PROCESS_GROUP
ABOVE_NORMAL_PRIORITY_CLASS
BELOW_NORMAL_PRIORITY_CLASS
HIGH_PRIORITY_CLASS
IDLE_PRIORITY_CLASS
NORMAL_PRIORITY_CLASS
REALTIME_PRIORITY_CLASS
CREATE_NO_WINDOW
DETACHED_PROCESS
CREATE_DEFAULT_ERROR_MODE
CREATE_BREAKAWAY_FROM_JOB
- 古い高水準 API
- 古い関数を
subprocess
モジュールで置き換える - レガシーなシェル呼び出し関数
- 注釈
sched
--- イベントスケジューラーqueue
--- 同期キュークラスcontextvars
--- コンテキスト変数
以下のモジュールは上記のサービスの一部で使われるサポートモジュールです: