思想比知識更重要 成長比成功更重要
回歸blogjava
BlogJava
首頁
新文章
新隨筆
聚合
管理
posts - 73, comments - 55, trackbacks - 0
為程序加上“關閉鉤子”(ShutdownHook)
?
“
關閉鉤子
”(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");
????}
}
/**/
/*
*
?*?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
可以看到:當程序退出時(按Ctrl+c,但eclipse下不知道如何停止)啟動了TestThread線程,執行了定義的釋放工作。
posted on 2006-11-08 14:23
保爾任
閱讀(353)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(4)
給我留言
查看公開留言
查看私人留言
隨筆分類
Arithmetic & Data Structure(11)
J2EE(4)
J2SE(33)
Python(1)
隨筆檔案
2008年9月 (1)
2008年2月 (1)
2007年12月 (2)
2007年11月 (2)
2007年10月 (2)
2007年9月 (1)
2007年7月 (2)
2007年5月 (1)
2007年4月 (1)
2007年3月 (8)
2007年2月 (8)
2007年1月 (3)
2006年12月 (34)
2006年11月 (6)
文章分類
Design Patten(18)
open source(10)
文章檔案
2008年8月 (1)
2008年7月 (1)
2006年12月 (1)
2006年11月 (3)
2006年10月 (14)
2006年9月 (7)
2006年8月 (34)
2006年7月 (32)
2006年6月 (39)
搜索
最新評論
1.?re: Builder(生成器)模式
果斷收藏
--憂桑的可樂雞
2.?re: 標準HTML標簽的屬性擴展
啊實打實打
--啊啊啊
3.?re: ajax簡單實例(js內產生xmlHttpRequest,它和servlet交互返回xml顯示在頁面)[未登錄]
pp
--p
4.?re: Java生成UUID(Universally Unique Identifier)
@huge
我的聯系方式:987925110
--huge
5.?re: Java生成UUID(Universally Unique Identifier)
你好,能像你請教一下有關jug的知識嗎?
--huge
閱讀排行榜
1.?java處理url中的特殊字符(如&,%...)(10322)
2.?字符串匹配(5713)
3.?CSDN論壇面試經驗和面試題集錦(5679)
4.?python學習筆記(5078)
5.?求兩個數或多個數的最大公約數算法及其實現(4681)
評論排行榜
1.?如何求素數(6)
2.?各種排序算法java實現(3)
3.?Java反射經典實例 Java Reflection Cookbook (2)
4.?求兩個數或多個數的最大公約數算法及其實現(2)
5.?字符串匹配(2)
Copyright ©2025 保爾任 Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
国产av天堂亚洲国产av天堂
|
亚洲高清中文字幕
|
aa在线免费观看
|
亚洲2022国产成人精品无码区
|
国产成人精品久久免费动漫
|
亚洲xxxx视频
|
国产国拍精品亚洲AV片
|
免费观看无遮挡www的视频
|
国产精品亚洲lv粉色
|
亚洲精品狼友在线播放
|
www.999精品视频观看免费
|
美景之屋4在线未删减免费
|
亚洲AV无码日韩AV无码导航
|
一本到卡二卡三卡免费高
|
亚洲AV日韩精品久久久久久
|
成人免费视频软件网站
|
中文字幕一区二区三区免费视频
|
亚洲一卡二卡三卡
|
亚洲人成人网站在线观看
|
成人免费激情视频
|
国产精品免费一区二区三区
|
亚洲精品二三区伊人久久
|
亚洲片国产一区一级在线观看
|
久久A级毛片免费观看
|
亚洲狠狠婷婷综合久久
|
亚洲天堂中文字幕
|
免费大黄网站在线看
|
日本黄网站动漫视频免费
|
eeuss草民免费
|
久久精品国产亚洲av瑜伽
|
亚洲经典在线中文字幕
|
亚洲天堂中文字幕在线
|
成人男女网18免费视频
|
99久9在线|免费
|
72pao国产成视频永久免费
|
亚洲乱妇熟女爽到高潮的片
|
国产亚洲精品2021自在线
|
亚洲色偷偷av男人的天堂
|
亚洲码国产精品高潮在线
|
免费在线不卡视频
|
日韩特黄特色大片免费视频
|