У меня есть система, в которой запущено несколько потоков (менее 10), которые продолжают проверять, получено ли новое сообщение электронной почты для адреса электронной почты. Код спит, когда в папке «Входящие» нет никаких сообщений каждые 5 секунд, и проверяет наличие любого нового сообщения в цикле. Я получаю 100% загрузку ЦП после выполнения кода в течение длительного периода (несколько часов или день), даже если в папке «Входящие» сообщения электронной почты нет сообщений. Я использую Javax.mail для подключения к gmail.
Я попытался сократить количество потоков, увеличить время ожидания и т. Д.
while (!this.isThreadInterrupt) {
if (this.getMessageCount() > 0) {
//do something
} else {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Заранее благодарен за помощь