Concurrencyとは
Concurrencyとは、複数の処理が同時に進行しているように見える状態を指す
読み: コンカレンシー
これは、必ずしも物理的に同時である必要はなく、処理が細かく分割され、実行順序が入れ替わることで実現される。結果として、ユーザーは複数の
かんたんに言うと
コンカレンシーとは、複数の処理が少しずつ実行され、並行して動いているように見えることである。
Concurrencyの仕組み
Concurrencyは、オペレーティングシステムやプログラミング言語の機能によって実現される。例えば、タイムスライスと呼ばれる短い時間単位でCPUの実行権を各処理に割り当てることで、複数の処理が交互に実行される。これにより、シングルコアのCPUでも複数の処理が同時に進行しているかのように見える。また、マルチコアCPUの場合は、複数の処理を物理的に同時に実行することも可能である。
Concurrencyのメリット
Concurrencyの主なメリットは、システムの応答性と効率の向上である。例えば、Webサーバーが複数のクライアントからのリクエストを同時に処理できるため、ユーザーは待たされる時間を短縮できる。また、I/O処理など時間がかかる処理をバックグラウンドで実行することで、ユーザーインターフェースの操作性を損なわずに済む。Concurrencyは、リソースの有効活用にも貢献する。
ConcurrencyとParallelismの違い
ConcurrencyとParallelismは、しばしば混同される概念だが、明確な違いがある。Concurrencyは、複数の処理が同時に進行しているように見える状態を指すのに対し、Parallelismは、複数の処理が物理的に同時に実行されている状態を指す。Parallelismを実現するには、マルチコアCPUや分散システムなどのハードウェアが必要となる。Concurrencyは、シングルコアCPUでも実現可能である。
