У меня есть 5 простых потоков, которые запускают цикл while:
flasherThread = new Thread(new Runnable() {
@Override
public void run() {
while(running.get()) {
// do network stuff
}
}
});
running
объявлено как private final AtomicBoolean running;
.
У меня есть этот метод:
public void stopFlasherThread() {
running.set(false);
}
Мой вопрос, установив флаг в false, который немедленно останавливает поток? Или мне нужно вызвать flasherThread.join()
, чтобы убедиться, что поток остановлен?
Основная проблема заключается в том, что у меня есть 4-5 таких одновременно.
Итак, у меня есть цикл, такой как:
for (int i = 0; i < 5; i++) {
ThreadArrayList.get(i).stopFlasherThread();
ThreadArrayList.get(i).join() // should I do this ?
}
Любая помощь будет отличной! Спасибо