Допустим, я запускаю сервер, и устанавливаю клиентские SocketChannels, которые я принимаю, как не блокирующие, и читаю их через потоки пула потоков.Но что это покупает меня?В любом случае мне нужно прочитать полный клиентский запрос перед его обработкой, а это значит, что мне нужно сделать несколько вызовов для чтения.
Я также сталкивался со статьями, в которых говорилось, что потоки должны блокироваться естественным образом, что дает возможность другим потокам работать.Однако в вышеупомянутом случае этого не произойдет, поскольку эти потоки не будут блокироваться.
Так как же эффективен неблокирующий ввод-вывод?Как понять это все?Возможно, какой-нибудь многоядерный процессор?Но как?
РЕДАКТИРОВАТЬ: нашел довольно хорошую ссылку, которая объясняет это программно:
http://rox -xmlrpc.sourceforge.net / niotut /