IT用語集 › プログラミング › NIO

NIO

プログラミング Svenska → 更新: 2026-10-23

Java 1.4(2002年)で導入されたノンブロッキングI/O API。チャネル、バッファ、セレクタの三つの概念からなり、NettyをはじめあらゆるJVMサーバーの土台になっている。

NIO以前は、接続ごとに専用のスレッドが必要で、1万本の同時接続はほぼ不可能だった。Selectorを使えば、一つのスレッドで数千のチャネルを監視し、読み取り可能になったときだけ起こされる。裏ではLinuxならepoll、BSDならkqueue、WindowsならIOCPが動く。ByteBufferはヒープ外に直接確保でき、カーネルがコピーを省ける。FileChannel.transferToではゼロコピー送信も可能だ。Java 7のNIO.2ではPath、Files、ファイルツリーの走査、ウォッチサービスが加わった。APIの使いにくさは有名で、だからこそ直接触らずNettyを使う人が多い。

← 用語集に戻る