原文:利用 java.lang.Runtime.addShutdownHook() 钩子程序,保证java程序安全退出

以前在开发时只知道依靠数据库事务来保证程序关闭时数据的完整性。但有些时候一个业务上要求的原子操作,不一定只包括数据库,比如外部接口或者消息队列。此时数据库事务就无能为力了。这时我们可以依靠java提供的一个工具方法:java.lang.Runtime.addShutdownHook Thread hook addShutdownHook方法可以加入一个钩子,在程序退出时触发该钩子。 退出是指ctr ...

2013-07-12 11:12 0 13719 推荐指数:

查看详情

JavaRunTime.getRunTime().addShutdownHook用法

今天在阅读Tomcat源码的时候,catalina这个类中使用了下边的代码,不是很了解,所以google了一下,然后测试下方法,Tomcat中的相关代码如下: Runtime.getRuntime().addShutdownHook(shutdownHook); 这个方法 ...

Fri Oct 25 18:24:00 CST 2013 0 3959
JAVA中调用外部程序,并等待其退出(涉及Runtime和ProcessBuilder)

这段时间要写一个java调用外部程序的功能,踩了几个坑,这里分享一下。 首先用的是RunTime,调用代码如下:  它并不会等待程序退出而是直接走下一步了,从而导致我后面的操作出了问题。  后来又用了Java里另外一个类 ProcessBuilder。 ...

Tue Nov 05 00:11:00 CST 2019 0 305
php钩子程序设计

。   讲钩子程序,起源是对用户提交的参数校验(永远不要相信用户),一开始为了赶工期,按照比较传统的 ...

Tue Jan 17 02:41:00 CST 2017 2 2703
Java 程序中怎么保证多线程的运行安全

并发操作中的3大问题:原子性问题,可见性问题,有序性问题 原子性:一个或者多个操作在 CPU 执行的过程中不被中断的特性 可见性:一个线程对共享变量的修改,另外一个线程能够立刻看到 有序性:程序执行的顺序按照代码的先后顺序执行 问题产生的原因 线程切换带来的原子性问题 案列: 假设为一个 ...

Mon May 24 22:11:00 CST 2021 0 243
java程序中怎么保证多线程的运行安全?

线程的安全性问题体现在: 原子性:一个或者多个操作在 CPU 执行的过程中不被中断的特性 可见性:一个线程对共享变量的修改,另外一个线程能够立刻看到 有序性:程序执行的顺序按照代码的先后顺序执行 导致原因: 缓存导致的可见性问题 线程切换带来的原子性问题 编译优化 ...

Fri Nov 20 16:01:00 CST 2020 0 375
Java 程序中怎么保证多线程的运行安全

线程的安全性问题体现在: 原子性:一个或者多个操作在 CPU 执行的过程中不被中断的特性 可见性:一个线程对共享变量的修改,另外一个线程能够立刻看到 有序性:程序执行的顺序按照代码的先后顺序执行 导致原因: 缓存导致的可见性问题 线程切换带来的原子性 ...

Thu Nov 28 19:20:00 CST 2019 0 1970
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM