동일한 모나드 컨텍스트 (예 : 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 고맙습니다! 이것은 매우 유망한 것 같습니다. –