<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          RunTime的回調(diào)鉤子

          共 1536字,需瀏覽 4分鐘

           ·

          2021-07-17 23:35

          項(xiàng)目運(yùn)行結(jié)束得時(shí)候可能需要對(duì)一些現(xiàn)有得信息進(jìn)行保存。比如說(shuō)我們?cè)趈ava進(jìn)程退出得時(shí)候要保存一些數(shù)據(jù),下次啟動(dòng)得時(shí)候要用到這些數(shù)據(jù)得情況。Java在1.3得時(shí)候就支持了這種特性。這種特性得實(shí)現(xiàn)就在類RunTime中。以下四種方式均可出發(fā)runtime得回調(diào)。
          1)程序正常退出 
                  2)使用System.exit() 
                  3)終端使用Ctrl+C觸發(fā)的中斷 
                  4)系統(tǒng)關(guān)閉 
          這里我們做個(gè)小demo
          public class TestRunTime {
          static class MyThreadOne extends Thread{
          public void run(){ System.out.println("stop thread one~~~~"); }    } static class MyThreadTwo extends Thread{
          public void run(){ System.out.println("stop thread two~~~~"); }    } public static void main(String[] args) { MyThreadOne myThreadOne=new MyThreadOne(); MyThreadTwo myThreadtwo=new MyThreadTwo(); Runtime.getRuntime().addShutdownHook(myThreadOne); Runtime.getRuntime().addShutdownHook(myThreadtwo); }}
          我們測(cè)試一下代碼:
          看完上邊得示例吶,我們看看這個(gè)Runtime有那些方法。
          私有化自己,這個(gè)應(yīng)該在jvm中直接掉用了。
          提供了很多方法,有執(zhí)行操作系統(tǒng)命令得,有獲取內(nèi)存容量得、退出jvm的,類加載的、垃圾回收的以及我們這里說(shuō)到的jvm回調(diào)鉤子。
          在添加鉤子的的時(shí)候,我們看到這里的ApplicationShutDownHooks類。
          通過(guò)查看代碼,發(fā)現(xiàn)我們可以添加多個(gè)鉤子線程。
          為了讓鉤子的添加能夠被shutdow類檢測(cè),所以這塊采用靜態(tài)塊將鉤子的運(yùn)行引用到Shutdown類中。我們jvm最終停止觸發(fā)的鉤子回調(diào)應(yīng)該跟這個(gè)shutdown有很大關(guān)系。至于這里的runHooks方法就是遍歷執(zhí)行我們的回調(diào)線程了哈。
          通過(guò)查看源代碼,發(fā)現(xiàn)這塊完全可以在Shutdown類中鉤子任務(wù)。在jvm停機(jī)的時(shí)候會(huì)走runHooks方法。既然有個(gè)shutdown了,那為啥還要弄個(gè)ApplciationShutdownHooks吶,我的理解就是解耦合。
          至于jvm最后回調(diào)的是什么方法,個(gè)人覺(jué)得應(yīng)該是這里的exit方法。
          早呀~

          瀏覽 45
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  97嫩草 | 无码人妻aV一区二区三区色欲 | 麻豆成人免费电影 | 狠狠操狠操 | 俺来也俺也去少妇 |