2010-02-19 70 views
6

与线程&摆动,事件队列(事件调度线程)被广泛介绍&讨论。随着Swing和Java,“Swing-Shell”线程做了什么

但是,使用Swing应用程序检查线程状态时,还会有一个名为的线程Swing-Shell。随着简短的谷歌搜索,我找不到很多细节,主要是线程堆栈跟踪与bug报告等。

有人可以很快描述那个线程做什么。或者甚至更好,有人有一些链接到一些文件

编辑:我问太快没有足够的细节,对不起。我正在尽管各种各样的 JFileChooser问题和一个名为“Swing壳”的线程发生在那里,有 有关Windows COM服务的文件系统。 死锁问题中的示例堆栈跟踪可在 Sun Bug #6741890中找到。 (线程堆栈跟踪以sun.awt.shell.Win32ShellFolderManager2 $ ComInvoker $ 3.run开头)。

jconsole仔细检查,我注意到,螺纹不存在那里,直到 我已经使用的JFileChooser(JFileChooser中例如;摆动壳牌线程可能会通过使用Win32ShellFolderManager任何部件被启动 ) 线程在使用JFileChooser后似乎也存在。

因此,回答自己,该线程似乎是一个单独的线程用于COM服务与 文件相关的操作(只有Windows?)。如果有人可以提供更多的细节,欢迎=)

+1

当你做一个线程转储,什么是堆栈跟踪看起来像该线程? – PSpeed 2010-02-20 06:10:23

+0

为了澄清,如果你从Windows的命令行启动你的swing应用程序,那么你可以在应用程序运行时在该命令行中按Ctrl-Break(注意:不是Ctrl-C)来获取每个正在运行的线程的堆栈跟踪。有一种方法可以在Linux上做到这一点,但我不记得我的头顶。 – PSpeed 2010-02-20 10:54:42

回答

1

初始线程的数量,目的和命名是implementation dependent。在我的平台上,event dispatch thread(EDT)被命名为AWT-EventQueue-0

附录:唯一的其他reference我发现说:“一个Motif应用程序使用shell小部件与窗口管理器进行通信。”你在使用某种Swing库吗?

如上所述,线程转储可能会亮起。 NetBeans分析器的最新版本包括一个保存按钮;我在典型的busy demo中附加了线程的快照。

image

+0

是的,我用我的EDT得到了一个类似的名字,但这个“Swing-Shell”似乎并不是一个“初始线程”(至少在链接的意义上)。对我来说,它似乎更像是Swing的某个后台守护线程或其他东西.. – Touko 2010-02-19 13:52:51