我目前拥有它,因此有一个线程处理接受循环,一个主线程用于执行所有有状态逻辑的东西,然后每个连接的客户端有 2 个线程。一个客户端线程正在处理输入管道并使用管道并发将消息发送到主逻辑线程。另一个客户端线程处理输出管道,从主逻辑线程获取消息并将它们发送到客户端。
我这样做的理由是,主逻辑线程可以使用工作线程对不可变状态进行纯计算,然后一次完成所有状态更改并循环返回新状态。这样我就可以使用多个 CPU,而不必担心并发状态修改的问题。
STM/管道并发的开销是否足够小,以至于当我最终有几千个连接的客户端每秒发送两到三个消息时,这是一种合理的方法?