【发布时间】:2011-01-18 18:53:58
【问题描述】:
通过线程和摆动,事件队列(事件调度线程)被广泛呈现和讨论。
但是,当使用 Swing 应用程序检查线程状态时,还有一个名为 Swing-Shell 的线程。通过简短的谷歌搜索,我找不到太多细节,主要是带有错误报告等的线程堆栈跟踪。
谁能简要描述一下该线程的作用。或者更好的是,有人有一些文档的链接
编辑:我问得太快了,没有足够的细节,对不起。我正在经历各种 JFileChooser 问题和一个名为“Swing-Shell”的线程出现在那里,有 与文件系统的 Windows COM 服务有关。 可以在以下位置找到死锁问题中的示例堆栈跟踪 Sun Bug #6741890。 (线程堆栈跟踪以 sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run 开头)。
仔细检查jconsole,我注意到该线程直到 我使用过 JFileChooser(例如 JFileChooser;Swing-Shell 线程可能会启动 通过使用 Win32ShellFolderManager 的任何组件) 使用 JFileChooser 后,该线程似乎也存在。
所以,回答我自己,线程似乎是用于 COM 服务的单独线程 文件相关操作(仅限 Windows?)。如果有人可以提供更多详细信息,欢迎=)
【问题讨论】:
-
执行线程转储时,该线程的堆栈跟踪是什么样的?
-
澄清一下,如果您从 Windows 上的命令行启动您的 Swing 应用程序,那么您可以在应用程序运行时在该命令行中按 Ctrl-Break(注意:不是 Ctrl-C)来获取每个正在运行的线程的堆栈跟踪。在 Linux 上也有一种方法可以做到这一点,但我不记得了。
标签: java swing file multithreading