假设我正在模拟某种网络,并且有一个函数可以在 Chans 列表上广播一个值:

broadcast :: a -> [Receiver] -> IO ()
broadcast a = mapM_ (send a)

这将按顺序“发送”数据到每个接收器。相反,我想向所有接收器进行非确定性广播。

感谢您提供任何线索。

最佳答案

仅使用 GHC 的并发性如何?

broadcast :: a -> [Receiver] -> IO ()
broadcast a = mapM_ (forkIO . send a)

然后确保使用线程 RTS(使用 ghc -threaded 编译)。

关于haskell - haskell 中公平的并发 `map` 函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5942615/

10-12 02:07