読み方 : ひどうきアイオー
非同期I/O【asynchronous I/O】ノンブロッキングI/O
別名 :non-blocking I/O/非ブロッキングI/O

コンピュータの入出力処理には、ストレージへのアクセスやネットワーク通信など、CPUの演算速度と比べて著しく時間のかかる操作が多い。同期I/Oでは、入出力処理を開始するとその完了まで実行が止まり、待機中はCPUが遊休状態になる。
一方、非同期I/Oでは、処理の開始を指示した直後に制御が呼び出し元へ戻り、CPUは別の処理を並行して進めながらI/O処理の完了を待つことができる。入出力の完了は、通知機構やコールバック関数、イベントといった仕組みを通じて後から受け取る仕組みである。
この方式が効果を発揮するのは、多数の接続を同時に扱うWebサーバなどの用途である。同期I/Oで各接続の完了を逐一待つ構成では、接続数の増加とともに待ち時間が積み重なり、応答性能が低下するが、非同期I/Oならば少ないリソースで膨大な数の通信を処理できる。また、ファイル保存中に画面が固まるといった事象を防ぐため、操作性が求められるアプリケーションにも採用されている。
なお、「非同期I/O」と「ノンブロッキングI/O」はほぼ同義に扱われることが多いが、システムによっては異なる場合がある。ノンブロッキングI/Oは、要求をすぐに処理できない場合にブロックせずエラーを返す仕組みを指すことがあり、この場合は処理の完了を後から通知する非同期I/Oとは区別される。