Я уже давно решил не использовать асинхронную, неблокирующую Java NIO. В целом сложность и польза очень сомнительна, и я думаю, что это не стоит в этом проекте в частности.
Но большинство из того, что я читал о NIO, и сравнения со старым java.io. * фокусируются на неблокирующих, асинхронных NIO и синхронных вводах-выводах на одном потоке с использованием java.io. *. Однако NIO можно использовать в синхронном, блокирующем режиме с потоком за соединение, о чем редко говорят.
Здесь вопрос: есть ли преимущество в производительности синхронного, блокирующего NIO по сравнению с традиционным синхронным, блокирующим вводом-выводом (java.io. *)? Оба будут потоками для каждого соединения. Как сложность сравнивается?
Обратите внимание, что это общий вопрос, но на данный момент я в первую очередь обеспокоен связью сокетов TCP.