Не завершается выполнение Java программы

214
04 декабря 2017, 17:07

Есть такой простой код с потоками:

public class App {
private static volatile boolean done = false;
public static void main(String[] args) {
    Runnable hellos = () -> {
        for (int i = 0; i < 10; i++) {
            System.out.println("Hello " + i);
        }
        done = true;
    };
    Runnable goodbyes = () -> {
        int i = 1;
        while (!done) i++;
        System.out.println("Goodbye " + i);
    };
    Executor executor = Executors.newCachedThreadPool();
    executor.execute(hellos);
    executor.execute(goodbyes);
}
}

не могу понять, по какой причине данная программа никогда не завершается? Как можно "диагностировать" проблему?

Answer 1

Добавьте в конце кода executor.shutdown()
Нужно закрыть Executor Service.

READ ALSO
Не могу запустить java.exe из командной строки (cmd)

Не могу запустить java.exe из командной строки (cmd)

Не могу запустить javaexe из командной строки (cmd)

281
Запуск java класс из командной строки

Запуск java класс из командной строки

У меня есть готовый проект написанный в NetBeans с 3-мя классамиКак мне скомпилировать и запустить из командной строки все это? к примеру есть...

307
Считывание с клавиатуры в метод

Считывание с клавиатуры в метод

Помогите пожалуйста! Только недавно начала изучать программирование и не могу понять такую вещь: с клавиатуры вводятся 3 точки треугольника...

286
Вопрос по ResultSet

Вопрос по ResultSet

Хочу сделать так, чтобы пользователь смог сам выбирать дату от и до которой он хочет получить данные из БД, не понимаю как это сделать, подскажите

212