タイムアウト (コンピュータ)
タイムアウト(英: timeout)とは、処理時間が不確定または予測不能な処理(膨大なデータ処理・データ転送、ハードウェア制御、通信やセッションなど)を一定時間以内に開始または完了できない場合、それを自動的に打ち切って中止することである。仕様規定以上の待ち時間を回避する目的で使われるほか、永遠に完了しない処理によって無限ループに陥りプログラムの制御を失ったり計算資源(例えばCPUやGPU[1]など)を無駄に占有し続けたりすることを防ぐ。
タイムアウトの例[編集]
- 正常に応答可能か不明なハードウェアの制御
- 正常に応答可能か不明なサーバとの接続・通信
- 排他制御された共有資源へのアクセス
- ある種のブラウザクラッシャーの回避
特にネットワーク通信用のAPIには、接続処理やデータの送受信処理について、タイムアウト時間がアプリケーションソフトウェア側で設定できるようになっているものが一般的である[2][3]。また、アプリケーションで明示的に設定しなかった場合、ライブラリやシステムによって定められた既定のタイムアウト時間が使われる。タイムアウトが発生した場合は、通例エラーコード[4][5]や例外のスロー[6]によって通知される。
脚注[編集]
- ^ Timeout detection and recovery (TDR) - Windows drivers | Microsoft Learn
- ^ Option Flags (Wininet.h) - Win32 apps | Microsoft Learn
- ^ SOL_SOCKET Socket Options (Winsock2.h) - Win32 apps | Microsoft Learn
- ^ Error Messages (Wininet.h) - Win32 apps | Microsoft Learn
- ^ Windows Sockets Error Codes (Winsock2.h) - Win32 apps | Microsoft Learn
- ^ Socket (Java Platform SE 8 )