如何测试线程安全关于如何测试多线程应用程序,您有什么建议吗?线程错误很难发现,我知道,它们可能随时发生——或者根本不会发生。测试很困难,结果永远不确定。当然最好仔细设计和编写并发模块。尽管如此-我不想忽略测试方面。因此,同时运行大量线程处理同一项目有时会引发线程错误。获得隐藏线程错误的高命中率的任何想法或最佳实践?(我正在使用.Net/C#)您可以使用一些很好的工具来测试所有线程问题,例如数据争用、死锁、线程卡住等。intel-thread-checker就是一个很好的工具。您也可以尝试使用MicrosoftResearch的CHESS。如果可能,请尝试将线程数增加到一个很大的数目,甚至比发行版中使用的更多。由于运行程序的线程较多,在代码上多线程运行多了就会出现较多的错误。仔细检查您的声明、锁定、解锁、信号量计数等,并确保它们有意义。创建测试文档或电子表格,并使用您对代码的了解,考虑可能出现竞争条件或死锁的位置。从大厅带一些人做“走廊可用性测试”(JoelonSoftware说我认为?)。一般来说,不知道你的程序是什么/关于你的程序的人能够轻易地破解它。好问题。我通常通过产生许多多线程并让它们疯狂地执行我怀疑可能受竞争条件影响的操作来测试竞争条件。也许你可以看看PNUnit-虽然它可能与你想要的有点不同。作者说他们构建它是因为“我们需要针对同一台服务器模拟数百个客户端”。用于调用线程例程的grep代码。如果发现任何问题,则测试失败,因为您的代码存在多线程错误。如果通过,将搜索扩展到您使用的库的部分,直到它失败或(不太可能)被证明是线程安全的(即单线程)。一旦你知道你有一个线程错误,工作的测试部分就完成了。剩下的就是查找和删除它们的小问题了。。。以上就是C#学习教程的全部内容:如何测试线程安全分享,如果对大家有用需要了解更多C#学习教程,希望各位多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
