Dlaczego AWT Eventqueue 0 zawiesza okno główne?

0

Mam program w którym dłuższa operacja wykonuje się w osobnym wątku. W czasie trwania osobnego wątku wszystko jest ok natomiast po jego zakończeniu główne okno programu przywiesza się na około 11 sekund. Zdziwiło mnie to bo zakończeniu wątku nie są wykonywane żadne operacje które mogłyby przywiesić okno. Zajrzałem do profilera i widać tam że gdy osobny wątek przestanie być aktywny zaczyna działać AWT Eventqueue 0 i to on blokuje okno bo gdy przejdzie w stan park albo monitor(nie wiem dokładnie który bo są oznaczone bardzo podobnie) to główne okno już działa.
Wątek:

Thread t = new Thread(new Runnable() {
         public void run()
         {
              ///obliczenia i aktualizacja progressbara
         }
    });

Po kliknięciu przycisku rozpoczyna się nowy wątek:

private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
     new Thread(thread).start();
    }
0

Cos kręcisz

0

Do aktualizacji progressbara mam tylko takie cos:

jProgressBar1.setValue((int)x+1);

i działa. Mógłbyś coś więcej napisać w jaki sposób wyświetlić te loggery albo zrobić core dumpa?

0

Logerami mogą być zwykle system.out.print...
Algernatywnie
http://visualvm.java.net/coredumps.html

0

Tego heap dumpa trzeba zrobić w tym czasie gdy okno się przywiesza? Jeśli tak to zrobiłem ale nie wiem jak z tego odczytać gdzie utknął edt ;/
Heap dump w załączniku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1