4
我需要在同一個單元的上下文中運行多個併發進程,例如Connection
。我期待像下面將工作:單線程中的多線程
main = runConnection connectionSettings $ do
forkIO action1
forkIO action2
action3
但forkIO
需要在IO
背景和動作來運行在IO
了。
假設這些操作的類型爲:: Connection()
,需要做些什麼來同時運行它們(實現哪些實例等)?
目前我解決此工作如下,但顯然這是不正確的:
main = do
forkIO $ runConnection connectionSettings action1
forkIO $ runConnection connectionSettings action2
runConnection connectionSettings action3
絕對不能保證它甚至可以以有意義的方式完成。然而,任何人都可以肯定地說什麼,你需要說出什麼是「連接」。 –
你看過單子平行嗎? http://hackage.haskell.org/packages/archive/monad-parallel/0.7.1.1/doc/html/Control-Monad-Parallel.html –
@ItaiZukerman謝謝!這看起來很有前途 –