1. 程式人生 > >Java多執行緒-49-Runtime類學習

Java多執行緒-49-Runtime類學習

這篇來學習多執行緒中的一個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物件,這就是一個餓漢式的單例模式。