gpt4 book ai didi

haskell - 这是多用户网络服务器的合理架构吗? (管道并发引入了多少开销?)

转载 作者:行者123 更新时间:2023-12-04 19:07:02 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

7年前关闭。




Improve this question




我目前拥有它,因此有一个线程处理接受循环,一个主线程用于处理所有有状态的逻辑内容,然后每个连接的客户端有 2 个线程。一个客户端线程处理输入管道并使用管道并发向主逻辑线程发送消息。另一个客户端线程正在处理输出管道,从主逻辑线程获取消息并将它们发送到客户端。

我这样做的理由是,主逻辑线程可以使用工作线程对不可变状态进行纯计算,然后一次性完成所有状态更改,然后循环返回新状态。这样我就可以使用多个 CPU 而不必担心并发状态修改的问题。

STM/管道并发的开销是否足够小,以至于当我最终将有几千个连接的客户端每个每秒发送两到三条消息时,这是一种合理的方法吗?

最佳答案

Haskell 绿色线程足够便宜,我肯定会推荐每个客户端 2 个线程的方法。在没有看到细节的情况下,我无法评论 STM 是否会成为瓶颈,但这将取决于您的实现。 STM 绝对可以处理这种级别的工作负载,前提是它使用得当。

关于haskell - 这是多用户网络服务器的合理架构吗? (管道并发引入了多少开销?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21691256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com