如今几乎所用程序员,不管使用什么编程语言,都会使用开发环境来创建应用。它们提供了许多集成在同一应用中的有趣功能,例如:
- 项目管理
- 代码自动生成
- 文档自动生成
- 版本控系统集成
- 测试应用的调试器
- 创建应用的项目与元素的不同向导
开发环境最有用的特性之一是调试器。使用它可以一步一步地执行应用,并分析程序的所有对象和变量值。
如果使用Java开发,Eclipse是使用最广泛的开发环境之一,它内置集成调试器来测试应用。默认情况下, 当调试并发应用且调试器找到断点时,它只停止设置断点的线程,但允许其他线程继续执行。本节讲学习如何更改配置来辅助测试并发应用。
准备工作
必须已经安装Eclipse开发环境。打开然后选择已经实现的并发应用工程,例如本书已经实现的范例。
实现过程
通过如下步骤实现范例:
-
导航到Window | Preferences。
-
在左侧菜单中展开Java选项。
-
然后选择Debug选项,如下图所示:
-
将Default suspend policy for new breakpoints的值从Suspend Thread改成Suspend VM(红色标注内)
-
点击OK按钮确认修改。
工作原理
本节引言中提到,默认情况下,当在Eclipse中调试Java并发应用且调试器处理找到断点时,它只停止设置断点的线程,但允许其他线程继续执行。如下图所示:
可以看到只有worker-21暂停运行(红色标注内),其它线程还在运行。但当调试并发应用时,如果将Default suspend policy for new breakpoints的值改成Suspend VM,所有线程将暂停运行,调试过程将到达一个断点…如下图所示:
所有的线程暂停运行,可以继续调试任何想要处理的线程,选择最适合要求的暂停策略。