Java多執行緒-49-Runtime類學習
阿新 • • 發佈:2019-01-05
這篇來學習多執行緒中的一個Runtime類,先本地電腦開啟JDK API文件,搜搜找到Runtime類。可以看到這些基本描述:每個 Java 應用程式都有一個 Runtime
類例項,使應用程式能夠與其執行的環境相連線。可以通過 getRuntime
方法獲取當前執行時。應用程式不能建立自己的 Runtime 類例項。
1.Runtime建構函式是私有的
上面說到應用程式不能建立自己的 Runtime 類例項,說明這個類的構造方法私有了。通過查API文件,確實看不到構造方法。
2.getRuntime()和exec()
我們知道,Runtime把構造方法私有了,外部不同通過new關鍵字來建立Runtime的例項物件。Runtime本身提供了一個功能的訪問方法用來得到Runtime的例項,這個方法就是getRuntime(). exec()方法的作用是在單獨的程序中執行制定的字串命令。
在寫Runtime方法程式碼練習之前,我們來提一個windows電腦上的一個定時關機命令和取消關機任務的命令。在cmd中輸入 shutdown -s - t 3600, 這個命令表示一個小時之後關機。如果再次輸入shutdown -a 表示取消關機計劃。建議你在windows上先cmd裡敲一遍這個命令,然後才練習下面的程式碼。
package thread; import java.io.IOException; public class Runtime_Demo { public static void main(String[] args) throws IOException { Runtime s = Runtime.getRuntime(); s.exec("shutdown -s -t 3600"); //s.exec("shutdown -a"); } }
第一遍執行,你的電腦會彈出一個提醒,一個小時之後關機;第二次執行,登出上面一行程式碼,放開"-a"這行程式碼。又彈一個框,提示定時關機任務取消了。
3.Runtime原始碼
在Eclipse上按下 ctrl+shift+T, 輸入Runtime,回車。
private static Runtime currentRuntime = new Runtime(); public static Runtime getRuntime() { return currentRuntime; } /** Don't let anyone else instantiate this class */ private Runtime() {}
可以看到以上程式碼,構造方法私有,一上來就建立物件,提供一個公共方法去獲取Runtime物件,這就是一個餓漢式的單例模式。