Повторное использование потока

254
16 августа 2017, 17:12

Есть поток реализованный следующим образом, при создании потока isRun=true, при выполнении определённых действий он зацикливается на sleep(), до того как изменится переменная isRun. Вопрос заключается в том, возможно ли это организовать без sleep()?. Так как много ресурсов отнимает поток во время этого зацикливания.

 class UpdateThread extends Thread {
        @Override
        public void run() {
            while (isRun) {
           // выполняю определённые действия
              isRun=false;
                while (!isRun){ // зацикливаю поток, до внешнего изменения переменной
                    try {
                        sleep(100);
                    } catch (InterruptedException e) {
                        return;
                    }
                }
            }
         }
Answer 1

Из официальной документации:

public synchronized void guardedJoy() {
    // This guard only loops once for each special event, which may not
    // be the event we're waiting for.
    while(!joy) {
        try {
            wait();
        } catch (InterruptedException e) {}
    }
    System.out.println("Joy and efficiency have been achieved!");
}
READ ALSO
Изменять начальный цвет

Изменять начальный цвет

Cтолкнулся с новой задачей:

220
Javah -stubs не генерирует ничего

Javah -stubs не генерирует ничего

Пробую JNI, наткнулся на такую статью: ссылка Там автор пишет такое:

247
Как выполнить код, если тест завалился?

Как выполнить код, если тест завалился?

Есть тестЦель теста: переводить страницу на другой язык(на странице снизу есть переключатель от гугл транслейта), и проверять как одно слово...

284
Почему проверка на то что строка является палиндромом работает только с латинскими буквами

Почему проверка на то что строка является палиндромом работает только с латинскими буквами

Есть код для проверки на палиндром, но работает он только с латинскими буквамиПочему так?

241