У меня есть строка состояния в приложении Swing, которое постоянно печатает статус. Все объекты и классы в приложении будут использовать этот метод setStatus для рисования строки состояния
public def setStatus(statusText){
Thread.start {
ljaStatusBarButton.setText("Status : $statusText . . . .")
sleep(3000)
ljaStatusBarButton.setText("Status : Waiting for user action . . . .")
interrupt() // or stop() ?
}
}
В строке состояния будет отображаться состояние в течение 3 секунд, и он вернется к состоянию, в котором говорится о ожидании действий пользователя.
Это работает правильно, но меня беспокоит то, что вышеупомянутый метод будет вызываться несколько раз из пользовательского интерфейса, что также означает, что новый объект Thread будет создаваться каждый раз, когда устанавливается состояние. Помня об этом, я явно добавил interrupt()
в конце, так как хочу указать компилятору, что мне больше не нужен этот поток. А также, сколько я могу сделать ставку на сборку мусора Java, чтобы гарантировать, что остановленные / прерванные потоки будут скоро очищены? Или есть лучший способ решить эту проблему с несколькими объектами потока?