В документации netty предлагается использовать переменные экземпляра в ChannelHandlers для отслеживания состояния канала.В нем не упоминается, что вы должны использовать переменные или использовать любую другую технику синхронизации, чтобы обеспечить согласованное представление потоков.
Например, используя этот обработчик для каждого соединения:
class Handler extends SimpleChannelUpstreamHandler {
int count = 0;
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
++count;
}
}
Я ожидаю, что многие разные потоки из пула потоков netty будут вызывать этот метод, хотя и не одновременно, и потенциально могут увидеть несовместимое представление, что приведет к неточному подсчету.
Является ли этодело?или внутри netty происходит какая-то синхронизация, которая приводит к сбросу записи в поле count?