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();
原文地址:https://www.cnblogs.com/song27/p/12918130.html