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();
}