27、Nio(selector(cancel(事件取消)))

Nio(selector(cancel(事件取消)))

第一步:当我监听到客户端的连接请求了,但是我们不进行连接(也就是不进行处理)。那么这个服务又陷入了一个非阻塞(线程一直运行)

第二步:剖析select方法(select的逻辑是,若是这个事件已经被处理过了,那么下次就需要新事件了。没有新事件仍然会阻塞(变为阻塞态),但是若是这个事件没有被处理,那么这个select就又会将这这个为处理的selectorkeys这个集合让线程继续处理(进入下面的扫描集合循环))select后这个事件要么处理,要么取消canel(事件取消也就是key.canel)。

 

猜你喜欢

转载自blog.csdn.net/logtcm4/article/details/127820855