У меня есть приложение с основным объектом (содержащим графический интерфейс Swing) и вспомогательный поток, который вызывает метод handle() объекта.
Я заметил, что когда метод handle() синхронизирован, а поток использует метод handle(), графический интерфейс основного объекта не отвечает. Код:
public synchronized void handle()){
//method code
}
я удаляю синхронизированное ключевое слово из handle(), графический интерфейс реагирует, даже когда поток использует метод handle().
Интересно отметить, что когда я использовал другой объект в качестве блокировки, графический интерфейс снова становится отзывчивым, когда поток использует метод handle(). Код:
public void handle(){
synchronized(anotherObj){
//method code
}
}
Это говорит о том, что Swing GUI использует синхронизированные методы. Я прав? Не стесняйтесь указывать мне на любые ресурсы - не смог найти то, что хотел.
Спасибо.