我有一个类,它使用字符串字典。一种方法是初始化字典,另一种方法是向字典添加新的对,第三种方法是将字典连接成字符串。
我想通过在不同线程中同时运行 init-adding-adding-*-adding-finalizing 方法来单元测试它是否线程安全。该类的新实例在使用前创建,字典不是静态的。所以我想确定它是否安全。
Afaik,在单元测试中测试线程并不是一个好主意。相反,我找到了一个 CHESS,它的设计目的完全相同:http://blog.decarufel.net/2009/05/how-to-test-your-multi-threaded-code.html
但是,看起来它已经过时了。关于这个领域的任何现代替代品/建议?
最佳答案
作为替代方案,您可以查看使用 ConcurrentDictionary类型,这将抽象出这些特定的多线程问题。
但是,如果你想继续使用你自己的机制(或者如果你想要一个关于如何测试多线程代码的问题的一般答案),它看起来来自this post国际象棋绝不是过时的。据我所知,自该工具首次发布以来,底层技术 - 多线程 - 根本没有改变,因此除非您在使用它时遇到特定问题,否则继续使用它是完全合理的。
关于c# - MS CHESS 过时了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15552384/