Selector里面会维持一个以channel为key、selectionkey为值的数据结构。select时,有相应事件发生时,会遍历channel,将遍历结果放入selectedKeys中,返回给用户处理。如果selectedKeys为空时,select会阻塞。有一个专门处理IO的线程,在比如有新数据来时,会唤醒select。用户处理完selectedKeys中的值后,要自行删除。
Selector里面会维持一个以channel为key、selectionkey为值的数据结构。select时,有相应事件发生时,会遍历channel,将遍历结果放入selectedKeys中,返回给用户处理。如果selectedKeys为空时,select会阻塞。有一个专门处理IO的线程,在比如有新数据来时,会唤醒select。用户处理完selectedKeys中的值后,要自行删除。