Приложение Java становится медленным и занимает больше времени для обновления пользовательского интерфейса
Привет, у меня есть приложение, которое связывается с моим устройством через последовательный порт USB. Программа просто считывает данные, отправленные устройством, и выводит их на экран в пользовательском интерфейсе. Но когда я запускаю программу более 20 раз, пользовательский интерфейс начинает обновляться все медленнее и медленнее.
synchronized (lockObject) {
Runnable r = new Runnable() {
@Override
public void run() {
while (sessionStatus) {
if (isSerialPortOpen() && !Thread.currentThread().isInterrupted()) {
createPacketAndWrite(getCurrentState());
try {
Thread.sleep(100);
serialCommunication.readData();
} catch (IOException e) {
log.error("IO error while reading data from serialCommunication object" + e);
} catch (InterruptedException e) {
log.error("InterruptedException in startCommunication()" + e);
Thread.currentThread().interrupt();
break;
}
}
}
}
};
threadPool.execute(r);
После 50 раз приложение перестает отвечать, и я должен закрыть приложение. Но связь между устройством и ПК все еще продолжается.
У меня есть 2 экрана в этом приложении, на одном экране я читаю данные с устройства за определенный промежуток времени и затем перехожу к следующему экрану.
На первом экране находятся 3 кнопки, кнопка 1 инициирует связь с устройством, кнопка 2 запускает устройство в другом режиме, кнопка 3 останавливает связь и переходит к следующему экрану.
Кнопка 3 загрузит некоторые значения с устройства для отображения на втором экране.
На button1 я также загружаю следующие элементы, такие как таблица, график и т. Д., Но пустой. На button2 я загружаю данные в таблицу и значения графика.
Моему приложению требуется время для загрузки пользовательского интерфейса, 1) При нажатии кнопки 1. 2) При нажатии кнопки 3. 3) Когда загружается следующий, приложение загружает данные в графиках.
Кто-нибудь может мне помочь?