Concurrency
Terminology
区別の基準
状態を共有するか
プリエンプティブか
各種コスト
生成
コンテキストスイッチ
OSのスレッドを使用するか
マルチコアの恩恵を受けられるか
Process
プログラムの実行単位
一般に状態を共有しない
OSのプロセス
Erlangの軽量プロセス
Thread
実行の脈絡(Thread of execution)より
状態を共有し得る
OSのスレッド
カーネルスレッドとかネイティブスレッドとか呼ばれる
ユーザレベルで実装されたスレッド
グリーンスレッドって最近聞かなくなったな...
軽量スレッド
Task
ひとまとまりの仕事を漠然と指す語
ECMAscriptの Promise 相当のものはC#では Task
Coroutine, Fiber
接尾辞 co は協調を意味する (Cooperative vs Preemptive)
プリエンプションが起こらず、明示的に制御を返す
その他
Job - シェルでパイプラインで繋げて走らせてるそれとかこう呼ばれる
Distributed - 分散コンピューティング、分散システムなど
Implementation
TBA