有什么方法可以进行 Junit 测试来确保同步对象(在我的例子中是同步块(synchronized block)中的 HashMap)不会被两个线程同时访问?例如强制两个线程尝试访问并抛出异常。 感谢您的帮助!
最佳答案
我见过的有助于线程测试的最佳框架是Thread Weaver 。至少它提供了一些确定性的线程调度方式,以及尝试查找竞争条件的有限(但有用)方式。
您甚至可以编写一些更复杂的线程调度场景,但这些测试将不可避免地是白盒测试。不过,这些也有其用处。
关于java - 如何Junit测试一个同步对象不能同时被两个线程访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37638583/