Остановка потока

175
13 апреля 2017, 16:52

Ребята, есть тред, в котором есть около 100 методов. Которые в свою очередь идет минут по 10. Такой себе тестовый фрейм.

Thread testRunningThread = null;

и вызов

testRunningThread = new Thread(util);
testRunningThread.start();

Остановка проходит так

if (testRunningThread != null) {
    util.setInterruptTests(new AtomicBoolean(true));
}

Но очень надо тред остановить немедленно. Не дожидаясь окончания конца роботы текещего выполняемого метода. Как ее провести?

Answer 1

Цитирую со skipy.ru/technics/synchronization.html:

Вариант первый – использовать существующий механизм. У класса Thread есть такой метод – interrupt. Этот метод выставляет некоторый флаг в дебрях native-кода. В дальнейшем состояние этого флага можно проверить с помощью метода isInterrupted. Существует также статический метод interrupted, который производит проверку для текущего потока. Обратите внимание – вызов этого метода сбрасывает флаг, что подразумевает ответственность разработчика по обработке этой ситуации.

Второй вариант реализации метода остановки (а также и приостановки) – сделать аналог interrupt, но руками. Т.е. организовать в собственной реализации потока флаги – на остановку и приостановку, – и выставлять их путем вызова методов извне. Методика действия та же – проверять установку флагов.

READ ALSO
Компиляция однотипных классов ant

Компиляция однотипных классов ant

Всем приветЕсть файл build

178
Политика паролей Spring Security

Политика паролей Spring Security

Необходимо в админке веб приложения реализовать возможность изменения парольной политикиТ

256
Unable to load class, to missing dependency

Unable to load class, to missing dependency

Мне нужно загружать файл на сервер:

252