Concurrency
並行処理とは、複数のタスクが論理的に同時に進行すること(物理的に同時である必要はない)であり、スレッド、コルーチン、イベントループによって実現される。
目的
スループットと応答性を高め、マルチコアと I/O の待ち時間を余すところなく活用する。
メカニズム
スレッドは OS がスケジュールするプリエンプティブ方式であり、共有メモリには同期が必要である。コルーチンは協調的に切り替わる軽量な単位である。イベントループはシングルスレッドの非同期 I/O である。アクターは共有なしのメッセージパッシングである。並行は並列と異なり、並列は複数コアでの物理的同時実行を要求する。
ユースケース
- パフォーマンス最適化
- システム設計
- スケーラビリティ