selectionKeys.clear()或remove抛异常java.lang.UnsupportedOperationException


获取返回的所关注的事件SelectionKey集合
Set<SelectionKey> selectionKeys = selector.keys();

selectionKeys循环处理完事件后,需要进行对它删除。

清除调用selectionKeys.clear()时 抛出异常:

java.lang.UnsupportedOperationException
    at java.util.Collections$UnmodifiableCollection.clear(Collections.java:1074)

 

keys()返回是一个不可修改的集合。只有在channel注销之后才可以删除。非线程安全。

改用

Set<SelectionKey> selectionKeys = selector.selectedKeys();

 

posted @ 2020-05-19 17:13  落孤秋叶  阅读(412)  评论(0编辑  收藏  举报