[英]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.