Selector翻译成选择器,有些人也会翻译成多路复用器,实际上指的是同一样东西。
只有网络IO才会使用选择器,文件IO是不需要使用的。
选择器可以说是NIO的核心组件,它可以监听通道的状态,来实现异步非阻塞的IO。换句话说,也就是事件驱动。以此实现单线程管理多个Channel的目的。
核心API
- Selector.open() 打开一个选择器。
- select() 选择一组键,其相应的通道已为 I/O 操作准备就绪。
- selectedKeys() 返回此选择器的已选择键集。
以上的API会在后面的例子用到,先有个印象。