[英]Graceful exit for multithreaded haskell
在這一點上,這完全是理論上的,但我一直在努力解決這個問題。 我們以客戶為例。 每個連接都有forkIOd線程,其中一個想要退出整個程序(即./exit)。 這些信息將如何傳播到其他線程?
這不是一個條件,但我假設線程正在從各自阻塞的線程中讀取。 因為他們在為他們寫的東西之前一直閑着,所以他們不能輪詢任何類型的“完成”變量。 所以我的第一個想法, unless done
。
我對任何程序都沒有解決方案,因此任何為任何語言提供解決方案的人都會受到贊賞,但真正的問題是如何在Haskell中完成。
我所知道的最好的方法是毒葯,它由CHP庫實施。
請參閱此處的優秀說明: http : //chplib.wordpress.com/2009/09/30/poison-concurrent-termination/
上面的文章順便通過了其他解決方案,並解釋了為什么它們通常有點脆弱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.