Потребление процессора, когда thead спит - PullRequest
1 голос
/ 14 октября 2019

У меня есть система, в которой запущено несколько потоков (менее 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();
        }
    }
}

Заранее благодарен за помощь

...