Как приостановить и возобновить тему? - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть поток:

class SomeRunnable implements Runnable {
    @Override
    public void run() {
        while (true) {
            //some code...
            try {
                Thread.sleep(33);
            } catch (InterruptedException e) {
                return;
            }
        }
    }
}

, который я начинаю использовать:

someThread = new Thread(new SomeRunnable());
someThread.setName("SomeThread");
someThread.start();

Если я хочу остановить поток, я просто прерываю его:

someThreat.interrupt();

Как мне позже возобновить обсуждение?

Спасибо!

1 Ответ

0 голосов
/ 16 сентября 2018

Вы можете использовать wait () и notify () метод.

wait ()

Заставляет текущий поток ждать, пока другой поток не вызовет метод notify () или метод notifyAll () для этого объекта.Другими словами, этот метод ведет себя точно так же, как если бы он просто выполнял ожидание вызова (0).

notify ()

Просыпается один поток, ожидающий на мониторе этого объекта.Если какие-либо потоки ожидают этого объекта, один из них выбирается для пробуждения.Выбор является произвольным и происходит на усмотрение реализации.Поток ожидает на мониторе объекта, вызывая один из методов ожидания.

...