A ChannelGroup
- это, по сути, «расширенный» список.
При обычном списке Java вам необходимо вручную отменить регистрацию каналов при их закрытии, ChannelGroup
сделает это за вас
Вам нужно вручную зациклить обычный список Java, если вы хотите отправить сообщение, но ChannelGroup
поставляется с собственным методом записи. Например:
ChannelGroup recipients = ...;
recipients.write(Unpooled.copiedBuffer(
"Service will shut down for maintenance in 5 minutes.",
CharsetUtil.UTF_8));
Использование ChannelGroup
в основном делаетВаша жизнь проще, так как она поставляется с таким количеством служебных методов, пример из javadoc для закрытия:
recipients.close().awaitUninterruptibly();
Если вы хотите закрыть все каналы при использовании ArrayList
,вам нужно перебрать все каналы, вызвать их методы закрытия, повторить цикл и ждать их закрытия, убедившись, что вы никогда не измените список во время цикла