原文:利用 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