编写示例服务器应用程序 - forkIO是不可避免的?

Gün*_*her 7 concurrency networking haskell

我没有在haskell做任何网络,所以我现在尝试一下.我使用Oleg的ZFS作为模板如何做到这一点.

IIRC他没有使用线程,而是使用"分隔延续",所以我想知道是否可以在不使用forkIO线程的情况下编写更重的加载服务器应用程序.

半滑舌鳎

Don*_*art 2

这确实是一个研究问题。Oleg 的 zipperFS 在底层没有使用 Haskell 的任何精细并发机制,因此我非常确定它无法扩展到许多并发用户。

我很好奇你可以使用拉链编写网络服务器。发布!

但为什么不直接使用经典风格的大规模并发编写一个常规服务器——每个接受一个 forkIO?

  • 亲爱的唐,我现在只是在尝试。另一点是,我试图尽可能保持“功能性”,甚至尽可能保持 Haskell98 风格,直到我达到从实际角度来看它不再有意义的地步。(当然这可能相当快)。当谈到奥列格的工作和研究时,这似乎是他的总体主题,而且他也经常取得成功。有一些有成就的 Haskellers 也试图保持这种方式,例如 Luke Palmer 等人。冈瑟 (2认同)