- 浏览: 576025 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- webservice (3)
- oracle (37)
- sqlserver (8)
- j2ee (56)
- linux (7)
- javaweb (47)
- office (1)
- struts (23)
- hibernate (11)
- spring (29)
- 网络 (2)
- tomcat (13)
- tongweb (0)
- weblogic (0)
- powerdesiginer (3)
- svn (3)
- js (20)
- ie (2)
- 编译 (3)
- css (2)
- 操作系统 (5)
- Android (41)
- jbpm4.3 (1)
- fckeditor (3)
- 操作excel (2)
- db2常用命令 (1)
- ibatis (5)
- mysql (16)
- 表达式语言 (1)
- java方式调用存储过程 (1)
- ca (1)
- linux客户端 (1)
- 电子数码 (1)
- 行业应用 (12)
- 开发工具 (4)
- 面试 (1)
- 计算机原理 (1)
- NOSQL (5)
- 虚拟机 (1)
- nginx (0)
- velocity (2)
- jndi (1)
- spring mvc (39)
- springmvc (32)
- 安全 (5)
- htmleditor (6)
- iphone4 (1)
- html (4)
- jstl (2)
- ckeditor (5)
- 连接池 (1)
- jquery (6)
- 分页 (1)
- 技术研发规则 (1)
- javamail (1)
- maven (2)
- upload (1)
- log (1)
- 测试 (10)
- spring roo (1)
- 版本控制 (2)
- find bugs (0)
- jsf (0)
- springroo (0)
- 小道理 (1)
- 小道理,技术标准 (1)
- jsf (0)
- bitbao (2)
- redmine (3)
- 团队意识 (1)
- mybatis (2)
- jquery mobile (1)
- flexpaper (0)
- json (4)
- URLRewriteFilte (1)
- html5 (1)
- 都乐保活动 (0)
- openfire (0)
- TreeMap (1)
- build (0)
- javaweb,tag (0)
- algorithm (1)
- tag (2)
- 扯淡 (0)
- mac (2)
- 叶一火(老一) (1)
- 游玩 (1)
- 编码 (1)
- 上线部署 (0)
- 研发管理 (0)
- thumbnailator (2)
- 旅游 (0)
- bingweibo (1)
- 杂谈 (4)
- ktv (1)
- weibo (1)
- 爱情 (2)
- 饮食 (1)
- MediaWiki (1)
- git (1)
- 版本库 (1)
- servlet (1)
- 感悟 (1)
- 人生 (1)
- highcharts (1)
- poi (0)
- websphere (0)
- php (1)
最新评论
-
woshixushigang:
good
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
nathanleewei:
org.springframework.jdbc.core.B ...
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
浪禾木:
请问是ckeditor\contents.css吗?改过以后 ...
ckeditor自动换行问题 -
simusuishi:
刚哥威武!
ckeditor取值赋值问题 -
a455642158:
收割完毕……
Android开源项目源码下载(不断更新中)
“关闭钩子”(ShutdownHook)是这样一个概念:向虚拟机注册一个线程,当程序退出(Ctrl+C)时虚拟机会启动这个线程,我们可以在这个线程的run()中做一些清除的工作,如:释放数据库连接,关闭文件等.
注册:
Runtime.getRuntime().addShutdownHook(Thread t);
注销:
Runtime.getRuntime().removeShutdownHook(Thread t);
[例子]
/**
* 在这个线程中实现程序退出前的清理工作
*
* @author Administrator
*
*/
class TestThread extends Thread {
boolean isTerminal = false;
public void run() {
while (!isTerminal) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("run sub thread");
}
}
/**//**
* 清理工作
*/
public void onTerminal() {
isTerminal = true;
System.out.println("stop sun sub thread");
}
}
* 在这个线程中实现程序退出前的清理工作
*
* @author Administrator
*
*/
class TestThread extends Thread {
boolean isTerminal = false;
public void run() {
while (!isTerminal) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("run sub thread");
}
}
/**//**
* 清理工作
*/
public void onTerminal() {
isTerminal = true;
System.out.println("stop sun sub thread");
}
}
运行结果:
/**//**
* ShutdownDownHook测试类
*
* @author Administrator
*
*/
public class TestShutdownHook extends Thread {
TestThread testThread;
public void addThread(TestThread t) {
testThread = t;
}
/**//**
* 实现程序退出前的清理工作
*/
public void run() {
System.out.println("This is ShutdownHook");
testThread.onTerminal();
}
public static void main(String[] args) {
TestShutdownHook m = new TestShutdownHook();
TestThread t = new TestThread();
t.start();
m.addThread(t);
// 注册退出处理线程
Runtime.getRuntime().addShutdownHook(m);
}
}
run sub thread
run sub thread
run sub thread
run sub thread
This is ShutdownHook
stop sun sub thread
run sub thread
run sub thread
run sub thread
This is ShutdownHook
stop sun sub thread
可以看到:当程序退出时启动了TestThread线程,执行了定义的释放工作。
发表评论
-
日期比较
2013-06-13 16:21 1165比较日期: function compareDate( ... -
Arrays.asList详解
2012-09-10 09:52 885Arrays.asList详解 记得以前写过一 ... -
Collections.addAll
2012-09-07 18:04 2324collections用法以及list 简单实例 Colle ... -
string
2012-09-06 17:20 886String a = "ab"; ... -
图片复制
2012-07-05 11:53 1065import java.io.File;import java ... -
thumbnailator 图片缩放
2012-07-04 20:10 1373Thumbnailator是一个用来生成图像缩略图的 J ... -
java File
2012-06-29 13:53 1268直接下载的,整理的很好,这里做个记录,基础的东西都是。 Fi ... -
mysql 时间比较
2012-06-05 19:57 1弱智得问题,分开写 SELECT * FROM bb_ ... -
split
2012-05-23 10:46 1196//String[] idArr = StringUtil ... -
(转)关于Integer大小比较的问题
2012-05-18 10:32 871关于Integer大小比较的问题 昨天跟朋友一起 ... -
toString
2012-05-14 20:01 998public abstract class ToStringB ... -
io读取操作
2012-03-09 16:18 955public void writeFile(Strin ... -
string[] to map
2012-03-03 17:23 1079public static Map<Inte ... -
tomcat中文问题的解决
2012-03-01 09:55 854第一,存文件必须以一种编码存;读文件也必须以一种编码读,如不特 ... -
java方式将汉字转成拼音
2012-02-24 13:02 1058/** * 需要一个开源的jar包pinyin4j-2.5. ... -
System.getProperty(key)
2012-02-15 15:08 1014public static void main(String ... -
CodeFilter
2012-05-22 11:14 834package com.bitbao.cm.common.ut ... -
Integer值比较误区
2012-05-22 11:14 926例子: Integer i1 = 12; I ... -
容易忽略的for循环问题
2012-01-18 15:33 11711、项目中对用户操作的结果进行审核时候,出现一个问题,如果对省 ... -
java实现的加密工具类(支持MD5和SHA)
2012-01-13 16:08 1266版权声明: dtstudy原创文章,转载请注明出处: h ...
相关推荐
7. **错误的shutdown钩子**:有时,一个未正确关闭的shutdown钩子可能导致Tomcat在启动时自动关闭。检查`bin/setenv.sh`或`bin/setenv.bat`文件,删除可能导致问题的钩子。 8. **服务注册**:如果在Windows上,尝试...
接着,启动Server并注册一个shutdown钩子,确保在接收到系统关闭信号时能正确关闭Tomcat。最后,Catalina会进入监听状态,等待shutdown命令。 `load`方法负责初始化Server实例,包括设置系统属性、初始化命名服务,...
JAVA虚拟机关闭钩子(Shutdown Hook).docx
使用stop目标终止它们,并且为了更加省心,使用JVM shutdown钩子终止它们。 每个实例都安装在$ {project.build.directory} / elasticsearch $ {instanceIndex}中。 对于Elasticsearch 1.xx和2.xx版本的支持,请...
// 注册shutdown钩子,确保数据库正常关闭 private static void registerShutdownHook(GraphDatabaseService graphDb) { Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { ...
在深入探讨Tomcat服务器的工作机制时,我们来到了第16章,这一章主要讨论了“关闭钩子”(Shutdown Hooks)的概念及其在Tomcat中的应用。关闭钩子是Java应用程序中的一个重要特性,它允许我们在程序退出前执行必要的...
关闭钩子,也称为Shutdown Hooks,确保即使在非正常退出的情况下,特定的代码块仍能得到执行。本文将深入探讨JDK源码中的关闭钩子机制,以及如何在实际开发中利用这一特性。 首先,当用户尝试关闭程序,可能由于...
1. **Shutdown Hooks**:Java提供了JVM关闭钩子(Shutdown Hooks),允许在JVM退出之前执行清理任务。在Spring Boot中,可以通过实现`DisposableBean`接口或者使用`@PreDestroy`注解的方法来注册这些钩子。当应用...
- Java提供了"Shutdown Hooks"机制,通过在JVM关闭前注册钩子函数来执行必要的清理任务。可以使用`Runtime.getRuntime().addShutdownHook(Thread hook)`来添加一个钩子。 5. **Spring Boot应用关闭**: - 如果...
通常,这些钩子用于进行必要的资源清理,例如关闭文件流、数据库连接等。通过调用`Runtime.getRuntime().addShutdownHook(Thread t)`方法,可以将一个已经初始化但尚未开始执行的线程作为`shutdown hook`注册到JVM中...
4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego 等 Notify Routine 信息查看,并支持对这些 Notify Routine 的删除 5.端口信息查看,目前不支持2000系统 6.查看消息钩子
4、CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等近20多种Notify Routine信息查看,并支持对这些Notify Routine的删除 5、端口信息查看,目前不支持2000系统 6、查看...
使用`SetWindowsHookEx`函数设置一个WH_SHELL类型的钩子,这个钩子可以捕获到关机、注销、重启等系统级事件。记得在退出程序时调用`UnhookWindowsHookEx`来释放钩子。 5. **处理消息**: 在`WndProc`方法中,添加...
4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等Notify Routine信息查看,并支持对这些Notify Routine的删除 5.端口信息查看,目前不支持2000系统 6.查看消息钩子 ...
Windows API函数SetWindowsHookEx可以注册一个全局钩子,监听特定的消息,比如WM_QUERYENDSESSION和WM_ENDSESSION,这两个消息分别表示用户尝试关闭电脑和电脑即将关闭,是监测关机事件的关键。 "友好提醒、提示"这...
在`INT 2E`中断方法中,我们跳过了用户级的钩子(User-Level Hooks),这些钩子通常被安全软件或恶意软件用来监控或修改系统行为。直接调用中断可以避免这些钩子的影响,使得关机过程更加直接且难以被拦截。 使用...
15. **关闭钩子(Shutdown Hook)**:通过`Runtime.getRuntime().addShutdownHook(Thread hook)`注册自定义的关闭钩子,这些钩子在JVM关闭时执行,用于清理资源。 16. **精灵线程(Daemon Thread)**:精灵线程是不...
JDK在1.3之后提供了Java Runtime.addShutdownHook(Thread hook)方法,可以注册一个JVM关闭的钩子,这个钩子可以在以下几种场景被调用: 1)程序正常退出 2)使用System.exit() 3)终端使用Ctrl+C触发的...
4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等Notify Routine信息查看,并支持对这些Notify Routine的删除 5.端口信息查看,目前不支持2000系统 6.查看消息钩子 7....
4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等Notify Routine信息查看,并支持对这些Notify Routine的删除 5.端口信息查看,目前不支持2000系统 6.查看消息钩子 7....