练习 1.2:收集线程数据
在开始之前,必须完成练习 1.1:导入必需的资源。
情形:您要调查的程序正在运行,然后突然停止。每次运行程序时都发生此问题。
此行为是典型的线程死锁,所以要求您调查此程序中的线程是如何交互的。
要找到可能的线程死锁,首先将收集线程数据,然后使用“概要分析和日志记录”透视图中的“线程视图”分析数据。
收集线程数据将允许您识别死锁,或找出导致应用程序失败的线程。
准备收集线程数据
要收集线程数据,您必须在“概要分析与记录日志”透视图中。要切换至此透视图:
- 从 Software Development Platform 菜单栏中选择窗口 > 打开透视图 > 其它。“选择透视图”对话框打开。
- 在对话框左下方,单击全部显示。复选框中将出现选择标记。
- 从透视图列表中选择概要分析和记录,然后单击确定。
- 如果“确认启用”对话框打开,则单击始终启用功能并且不要再次询问,然后单击确定。
- Software Development Platform 就切换到“概要分析和记录”透视图。
收集 philosopher 应用程序的线程数据
要收集数据:
- 从 Software Development Platform 菜单栏中单击窗口 > 显示视图 > 控制台以打开“控制台”视图。“控制台”视图允许您跟随应用程序的处理过程。
- 创建概要分析配置:
- 从菜单栏中单击运行 > 概要文件。“概要文件”对话框打开。
- 在“配置”列表中,双击 Java 应用程序条目。New_configuration 条目出现。
- 在“名称”字段中,输入 PhilosopherThreads。
- 在“主要”选项卡中,如果还没有在“项目”字段中输入 philosopher,则执行以下步骤:
- 单击“项目”字段旁边的浏览。“选择项目”对话框打开。
- 选择 philosopher,然后单击确定。
- 单击“Main 类”字段旁边的搜索。
- 在“选择主要类型”对话框中,单击 MaitreDHote,然后单击确定。
- 单击概要分析选项卡。
- 在“概述”子选项卡中,选择“线程分析”概要分析集。(概要分析集定义对运行要收集的概要分析数据的类型。)
- 单击概要分析。应用程序就会运行并显示更改,如下所示:
- “概要分析”资源出现在“概要分析监视器”中。
- “控制台”视图显示运行的输出。
注意:如果接收到“没有代理控制器”安全性消息,请阅读如果无法收集数据。

当应用程序达到某个点时,它停止了处理。然而,对于此运行,您已收集线程数据,现在可以分析停止的原因。
如果无法收集数据
必须先运行“代理控制器”才能收集任何种类的概要分析数据。如果接收到“没有代理控制器”消息,确保已安装“代理控制器”,手工启动它,然后再试。有关指示信息,请参阅安装指南。您可以使用启动板访问安装指南,或者在产品 CD 的 disk1/install.html 下找到它。
收集数据以后,您就可以开始练习 1.3:识别线程瓶颈。