c#如何进行单元测试/验证类提供的api是线程安全的

本文关键字:api 安全 线程 何进行 单元测试 验证 | 更新日期: 2023-09-27 18:04:05

我需要把它放在多线程上下文中吗?或者只要类的成员不公开为共享资源,并且是不可变的和只读的,就可以证明这一点。

c#如何进行单元测试/验证类提供的api是线程安全的

api中的大多数实例方法根本不应该是线程安全的。客户端代码应该决定——取决于上下文——是否同步访问,以及在哪个粒度。只有静态(类)方法才会提供线程安全,它不应该是强制性的。

回答你的问题,我不认为有一个琐碎的非上下文相关的方法来测试线程问题。线程问题,如数据竞争或死锁,大多数时候很难发现:概率低,非常依赖于输入数据,不确定等。