2010-02-19 2 views
6

스레드가 & 스윙 인 경우 이벤트 큐 (이벤트 발송 스레드)가 광범위하게 설명됩니다. &스윙과 자바에서는 "스윙 셸"스레드

그러나 Swing 응용 프로그램에서 스레드 상태를 검사 할 때 Swing-Shell이라는 스레드가 있습니다. 간단한 인터넷 검색으로 많은 버그를 발견하지 못했습니다. 대부분 버그 리포트 등으로 스택 추적을 추적합니다.

누군가가 그 스레드의 역할을 곧 설명 할 수 있습니까? 또는 더 나은, 누군가가 일부 문서에 대한 링크가

EDIT : 나는 세부 사항없이 너무 빨리 묻고 있었다, 미안. 다양한 JFileChooser 문제가 발생하여 파일 시스템 용 Windows COM 서비스와 관련하여 이있는 "Swing-Shell"이라는 스레드가 발생합니다. 교착 상태 문제 내의 샘플 스택 추적은 Sun Bug #6741890에서 찾을 수 있습니다. (스레드 스택 추적은 으로 시작합니다. sun.awt.shell.Win32ShellFolderManager2 $ ComInvoker $ 3.run). jconsole와 가까운 검사와

, 나는 스레드가 존재 때까지 내가 JFileChooser를 사용한없는 것으로 나타났습니다 (예를 들어 JFileChooser의를, 스윙 쉘 스레드가 아마 Win32ShellFolderManager을 사용하는 모든 구성 요소 시작됩니다) 스레드 JFileChooser의 사용 후에도 존재하는 것 같습니다.

그래서 나 자신에게 대답하는 스레드는 파일 관련 작업 인 (Windows에만 해당)이있는 COM 서비스에 사용되는 별도의 스레드 인 것처럼 보입니다. 누군가 자세한 내용을 제공 할 수 있다면 환영합니다.)

+1

, 스택 추적은 스레드에 대한 어떠한가? – PSpeed

+0

Windows에서 명령 줄에서 스윙 응용 프로그램을 시작한 경우 실행중인 모든 스레드의 스택 추적을 얻으려면 응용 프로그램이 실행되는 동안 해당 명령 줄에서 Ctrl-Break를 누를 수 있습니다 (참고 : Ctrl-C 아님). . Linux에서도이 작업을 수행 할 수있는 방법이 있지만 내 머리 꼭대기를 기억하지 못합니다. – PSpeed

답변

1

초기 스레드의 수, 용도 및 이름은 implementation dependent입니다. 내 플랫폼에서는 event dispatch thread (EDT)의 이름은 AWT-EventQueue-0입니다.

부록 : 유일한 다른 reference은 "A Motif 응용 프로그램은 쉘 위젯을 사용하여 창 관리자와 통신합니다."라고 말했습니다. Swing 라이브러리를 사용하고 있습니까?

위에서 제안한 것처럼 스레드 덤프가 표시 될 수 있습니다. NetBeans의 프로파일 러의 최근 버전에는 저장 버튼이 있습니다. 스레드의 스냅 샷을 일반적인 busy demo에 첨부했습니다. 당신이 스레드 덤프를 수행 할 때

image

+0

그래, 비슷한 이름의 EDT가 있는데이 "Swing-Shell"은 (적어도 링크 감각으로는) "초기 스레드"가 아닌 것 같습니다. 나에게 그것은 Swing이나 뭔가의 백그라운드스런 데몬 스레드와 같아 보인다. – Touko

관련 문제