Если вы используете многопоточность, требуется небольшая нагрузка на IPC. У вас одинаковое пространство памяти для всех ваших потоков, поэтому вам может понадобиться простой мьютекс или семафор. Теперь, если вы блокируете мьютекс или семафор слишком долго или слишком часто, зачем вообще использовать асинхронный ввод-вывод?
Что касается фактических вычислений, выполняемых потоками, выполняющими ввод / вывод, то они ожидают, что ядро разбудит их большую часть времени, поэтому я не стал бы беспокоиться.
Если ваше приложение будет вращаться вокруг чтения файлов и других источников ввода-вывода, вы можете захотеть ознакомиться с шаблонами Reactor и программированием, управляемым событиями.
Также вы упомянули о демоне и обслуживании клиентов. Если предоставляемый вами сервис - это чтение файлов, вычислительные затраты на создание нового потока для обслуживания каждого клиента минимальны, так как каждому отдельному потоку потребуется «много времени» для выполнения запросов и в любом случае большую часть времени он блокируется. Может быть проблема с памятью, если количество ваших клиентов исчисляется тысячами, но в остальном я думаю, что у вас все будет хорошо.
Дайте нам немного больше информации о том, что вы хотите сделать, может быть, есть более простые способы.