Если запросы проходят быстро, то стоит начать с количества тредов, равного количеству ядер. Кодирование/декодирование запросов все равно будет лимитировано на ядра.
Если длительность запросов может быть разной, то стоит поглядеть на NIO -- там можно добиться сильно большей параллельности, но обработку все равно ограничить количеством ядер.