12.4 小结

测试并发应用程序是一项非常困难的任务。线程的执行顺序无法保证(除非在应用程序中引入了同步机制),因此与串行应用程序相比需要测试很多不同的情况。有时,应用程序中出现了错误,但是无法重现,因为这些错误仅在非常罕见的情况下出现。有时,由于硬件或软件配置的原因,错误只会在特定机器上出现。

本章介绍了一些可以更加方便地测试并发应用程序的机制。首先,你学习了如何获取Java并发API中最重要组件的状态信息,例如线程、锁、执行器或流。需要探查导致错误的原因时,这些信息非常有用。然后,你学会了如何使用JConsole监视常规Java应用程序和特殊一点的并发应用程序。最后,你学会了如何使用两种不同的工具测试并发应用程序。

下一章将介绍如何使用其他语言和类库实现并发应用程序,这些语言和类库也可以支持你实现面向Java虚拟机的并发应用程序。你将学到采用Clojure、含有GPars库的Groovy以及Scala实现并发应用程序的基本原则。