Process
Overview
言語ごとで比較される項目のプロセスやスレッドについてまとめているセクション。
マルチスレッドかマルチプロセスかと、並行処理か並列処理かの間に関係性はない。
- マルチスレッドで並列処理
- マルチプロセスで並行処理
- マルチプロセスで並列処理
マルチスレッドを使う場合は並行処理か並列処理かによらずスレッドセーフかどうかを考える必要がある。 並列処理ができるかどうかはCPUのコア数に依存する。コア数が2以上であれば並列処理ができる。
前提
プログラムの並列処理にはマルチスレッドとマルチプロセスの2種類がある。
- マルチスレッド 同じプロセス内で動作し、同じメモリ空間を共有するため、スレッド間でのデータ共有を効率的に行うことができる。
- マルチプロセス プロセスごとに独立したメモリ空間を持ち、プロセス間通信ができる。
並行処理と並列処理とは
並行処理と並列処理の違いは、タスクの分割・実行において、同時に行われるか否か。
- 並行処理 複数のタスクを同時に処理することを指し、処理Aと処理Bが交互に実行されるイメージ。
- 並列処理 複数のタスクを同時に実行することを指し、処理Aと処理Bが同時に実行されるイメージ