非同期I/O 【asynchronous I/O】 ノンブロッキングI/O / non-blocking I/O / 非ブロッキングI/O
概要
非同期I/O(asynchronous I/O)とは、コンピュータ内部のCPUと周辺装置のデータ入出力(I/O)において、データの送受信の完了を待たずに他の処理を開始する方式。処理の流れとI/Oが並行する並列処理の一種である。I/O処理と並列に、データの送受信が完了していなくても可能な処理を進め、送受信が済まないと進められない処理にたどりついた場合に、そこで送受信の完了を待つ。制御は複雑だがI/Oが行われる間、丸ごと待つわけではないため総合的な性能は高めやすい。
なお、「非同期I/O」と「ノンブロッキングI/O」はほぼ同義のように扱われるが、ある種のシステムではI/O要求がすぐに行えない場合にエラーや例外を返して処理がブロックされるのを防ぐ仕組みになっている場合もあり、このような場合はノンブロッキングではあるが非同期ではないとも考えられる。
(2023.12.15更新)