Как правило, наилучшим способом является одиночное соединение между клиентом и сервером. Я не представляю, как могут помочь несколько соединений для передачи одних и тех же данных между одним клиентом и сервером. При правильной реализации шаблона команд вы можете оптимизировать использование канала до максимума, на самом деле в этом и заключается все преимущество NIO. Например, предположим, что даже если у вас есть поток, записывающий канал, заблокированный для создания данных, у вас может быть другой поток, записывающий некоторые другие данные в тот же канал, но вам нужно разумно кодировать, чтобы извлечь лучшее из NIO.
И для вашего приведенного примера, я считаю, в тривиальных случаях getThroungOneChannel()
будет превосходить getWithMultiChannel()