У меня есть приложение, которое смешивает актеров с неблокирующими сокетами (т.е. NIO). Способ, которым я это сделал, - создать выделенный поток ввода-вывода, который отправляет сообщения акторам (во многом аналогично тому, как делегировать работу пулу потоков в системе Java) с использованием шаблона реактора.
Очевидно, что используя старые блокирующие сокеты, вы ограничены одним потоком на соединение. И субъект мог справиться с этим, но, конечно, это накладывает ограничение на количество соединений, которые могут обрабатываться одновременно.
В случае одного потока ввода-вывода это является узким местом в теории, но не так много на практике (в наших наблюдениях), поскольку поток ввода-вывода выполняет вычислительно не интенсивную работу. Есть много хороших обсуждений, которые можно найти на схеме реактора NIO .