Когда у меня есть selector.select (), зарегистрированный в SocketChannel, и я закрываю одноранговый узел SocketChannel в отдельном потоке, selector.select () возвращается, и устанавливается операция READ этого канала.Если у меня есть ServerSocketChannel, зарегистрированный для селектора, и я закрываю ServerSocketChannel, selector.select () не возвращается.В любом случае я могу обнаружить, что ServerSocketChannel был закрыт, в то время как был заблокирован в selector.select ()?
Я попытался использовать selector.wakeup () и просмотреть набор ключей (не выбранных ключей) и проверить, есть ли в наборе какие-либо нераскрытые каналы, но как только закрытие будет выполнено наServerSocketChannel, он отменен из селектора, поэтому его нет в наборе select.keys ().