I/O Dispatchers
IOReactor的实现使用IOEventDispatch接口通知正在等待会话的事件。IOEventDispatch的所有方法都在I/O Reactor的调度线程中执行。因此,保证在事件方法中进行的处理不会阻塞调度线程太长事件是很重要的,因为阻塞事件过长会导致I/O reactor无法响应其他事件。
IOReactor ioreactor = new DefaultConnectingIOReactor();
IOEventDispatch eventDispatch = <...>
ioreactor.execute(eventDispatch);
IOEventDispatch定义的I/O事件:
- connected:新会话创建时触发
- inputReady:会话有输入时触发
- outputReady:会话有输出时触发
- timeout:会话超时时触发
- disconnected:会话结束时触发