jjzjj

Shutdownhook

全部标签

java - 等待线程在 shutdownhook 中写入更改

我有一个shutdownhook,它在进程终止时执行。然而,程序对h2数据库所做的更改不是持久的。只有在提交后让关闭线程等待一段时间,我才能在再次启动时看到数据库中的更改。Runtime.getRuntime().addShutdownHook(newThread(){@Overridepublicvoidrun(){//H2dbaddrow,commitandcloseThread.sleep(1000);//intry/catchSystem.out.println("Shutdowncomplete");}}只有sleep,我会在下次连接到数据库时看到更改。有谁知道如何在进程终止

具有多个线程的java关闭钩子(Hook)

我正在尝试让一个关闭钩子(Hook)在我的ubuntu服务器上工作,但是我似乎遇到了不止一个线程的问题。使用基本的ShutdownHook,当我使用kill终止进程时,以下代码确实有效,表示关闭行为已激活。publicstaticvoidmain(String[]args){ShutdownHookshutDown=newShutdownHook();shutDown.attachShutDownHook();while(true){}}然而,具有附加线程的相同代码不会publicstaticvoidmain(String[]args){ShutdownHookshutDown=new

java - 如果 JVM 崩溃,Shutdownhook 是否保证执行

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:WhenShutdownHooksBreakBad想知道在JVM崩溃的场景下是否保证shutdownhook执行。

java - 在 Shutdownhook 上使用 JavaFX Application.stop() 方法

所以我正在使用shutdownhook进行清理,老兄,因为它并不总是保证shutdownhooks线程执行,我是否应该将这段代码推送到每次关闭我的应用程序时执行的JavaFX应用程序线程(方法stop())?运行代码并不昂贵,如果没有关闭,它基本上只是关闭套接字,如果没有被杀死,则杀死进程。使用Application.stop()清理ShutdownHook是一种好习惯吗?引用自文档:Thismethodiscalledwhentheapplicationshouldstop,andprovidesaconvenientplacetoprepareforapplicationexita

java - 在 Web 应用程序中注册 shutdownHook

我们如何在Web应用程序中注册Shutdownhook?在web.xml或applicationContext.xml中注册它有什么好处吗?我知道如果我们使用带有主类的应用程序很简单。ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext("ApplicationContext.xml");context.registerShutdownHook();但是Web应用程序呢?因为它使用ContextListener 最佳答案 在独立(非网络)应用程

java - 在 Web 应用程序中注册 shutdownHook

我们如何在Web应用程序中注册Shutdownhook?在web.xml或applicationContext.xml中注册它有什么好处吗?我知道如果我们使用带有主类的应用程序很简单。ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext("ApplicationContext.xml");context.registerShutdownHook();但是Web应用程序呢?因为它使用ContextListener 最佳答案 在独立(非网络)应用程

java - 为什么我的 main 方法中的 shutdownhook 没有被调用?

我的主要方法中有以下内容:publicstaticvoidmain(String[]args)throwsIOException{Propertiesproperties=getConfig();Jedisjedis=configure(properties)jedis.subscribe(queueHandler,"queue");Runtime.getRuntime().addShutdownHook(newThread(){@Overridepublicvoidrun(){logger.debug("SHUTTINGDOWN");jedis.close();}});}我注意到我的