异步包的行为

时间:2016-02-22 01:57:15

标签: haskell asynchronous

以下使用async包的代码会做什么:

action <- async $ mapM_ someFunc someList
wait action

这只会产生mapM_发生的单个线程吗? (暗示这不仅仅是mapM_ someFunc someList

或者它是否会异步执行mapM_操作(或mapConcurrently是获取此类行为的唯一方法)?

1 个答案:

答案 0 :(得分:1)

  

这只会产生一个发生mapM_的线程吗?

是的,它将分叉一个线程并立即阻止等待mapM_完成并返回()(或抛出异常)。

async包非常简单;您可能希望查看源代码以了解它们如何一起工作并了解有关底层haskell并发原语的更多信息。