如果线程死亡或冻结你应该编码吗?

JD.*_*JD. 4 c#

我有一个启动10个线程的应用程序.每个线程都会工作并等待(使用生产者消费者模型).因此,当更多的工作出现时,其中一个线程被解除阻塞,它就能完成工作.

一位在工作的同事坚持认为我应该编写一些监控线程的代码"以防万一"他们冻结/不响应或死亡.

到目前为止,在我的测试中,它们工作正常并正确关闭.

我的问题是"我应该把代码放进去做"吗?如果是这样,"我如何监控线程并检查其状态"?

谢谢.JD

Meh*_*ari 5

这取决于具体情况.首先,你应该专注于正确性,以便它不会冻结或死亡,但如果你需要更高的可靠性,你应该首先考虑如何从这种情况中优雅地恢复.你应该考虑为什么它可能会冻结或死亡,如果确实如此,现在你可以做什么.如果你无法做到可以从这种情况中可靠地恢复的任何好处,你甚至不应该尝试.如果可以做到这一点而不会使情况变得更糟,那么你可以尝试这样做.

显然,如果你做出这样的选择,你必须要小心,不要搞砸了,并引入一些实际上会让坏事发生的错误.