Viv*_*ath 6 java testing concurrency multithreading unit-testing
是否有任何测试多线程代码的指导原则(除了在问题上抛出一堆线程并交叉手指).
我基本上正在寻找测试数据损坏,死锁和其他并发问题的好方法.基本上我希望能够通过测试证明代码是线程安全的.
Java中是否有任何框架可以让您轻松编写多线程场景的测试?
我已经编写了很多多线程代码,但从未发现任何可以轻松测试我未预测到的并发正确性问题的东西。大多数时候,我必须考虑它可能损坏的场景,然后如何在极端版本中证明其正确性(通常使用 CountDownLatches 或类似的方法以我认为可能损坏的方式弯曲它。
\n\n一定要使用 FindBugs 和类似的静态分析工具来帮助发现潜在的问题,并且一定要让并发问题尽可能简单。共享可变内存问题很困难,但实际上重新定义问题很容易,因此您不共享可变状态,仅共享不可变状态。这让生活变得更加简单。哦,读取 JCiP \xe2\x80\x93 然后再读取一次。并审查您的代码。
\n