Подождите, пока потоки запишут изменения в the shutdownhook

I Имейте выключатель, который выполняется, когда процесс завершается. Однако изменения, которые программа вносит в базу данных h2, не являются постоянными. Только если я позволю потоку выключения подождать некоторое время после фиксации, я увижу изменения в БД.

Runtime.getRuntime().addShutdownHook(new Thread() {
    @Override
    public void run() {
        // H2 db add row, commit and close
        Thread.sleep(1000); // in try/catch
        System.out.println("Shutdown complete");
    }
}

Только после сна я увижу изменения в следующий раз, когда подключусь к БД.

Кто-нибудь знает, как ждать это для базы данных H2, чтобы завершить операцию до завершения процесса? Я хочу избежать Thread.sleep () со случайным временем ...

6
задан FunctionR 23 April 2014 в 23:10
поделиться