2016-02-22 98 views
0

的什麼會使用async包下面的代碼做:行爲異步包

action <- async $ mapM_ someFunc someList 
wait action 

請問這個只是產卵其中mapM_出現一個單獨的線程? (言下之意,這已經比剛mapM_ someFunc someList沒有好處)

還是會異步執行的mapM_行動(或者是mapConcurrently獲得這種行爲的唯一方法)?

回答

1

這隻會產生一個線程,其中mapM_發生?

是的,它將fork一個線程並立即阻止等待mapM_完成並返回一個()(或拋出異常)。

這個async包很簡單;您可能希望查看源代碼以瞭解它們如何一起工作,並瞭解有關基礎Haskell併發基元的更多信息。