> обмениваться через нетипизированную память (File-in-memory)

То есть сериализовывать, а потом десериализовывать...
Это неприемлемо в случае когда нужно передавать сложные структуры данных с указателями.

У меня один поток получает сообщения по TCP,десериализуетих, ставит в очередь на обработку. Другой поток забирает их из этой очереди, обрабатывает, формирует ответные сообщения, ставит их в очередь на отправку. Третий поток берёт сообщения из очереди отправляемых,сериализуетих и отправляет по TCP.