select システムコールとは?
select システムコールは、IO 多重化の古い形式で、プログラムが渡したファイルディスクリプタのうち 1 つ以上が読み取りまたは書き込みの準備完了になるか、タイムアウトが経過するまでブロックします。呼び出しのたびにすべてのディスクリプタを走査するため、そのコストはディスクリプタの数とともに増加します。移植性はありますが、epoll のような新しいインターフェースほどスケーラブルではありません。
なぜ重要か
select は 1 つのスレッドで複数の接続を扱う古典的な方法であり、今なお多くのツールやライブラリで広く使われています。そのスケーリングコストを理解すると、高負荷サーバーが代わりに epoll へ移行した理由がわかります。
関連ガイド
What Is the Epoll Interface?Epoll is a Linux mechanism for efficiently watching many file descriptors at once and being told which are re…
What Is Non-Blocking IO?Non-blocking IO returns immediately when an operation cannot complete yet, letting a single thread interleave…
What Is Blocking IO?Blocking IO pauses the calling thread until an input or output operation finishes, so the thread cannot do ot…