Java多线程-49-Runtime类学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011541946/article/details/85806968

这篇来学习多线程中的一个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对象,这就是一个饿汉式的单例模式。

猜你喜欢

转载自blog.csdn.net/u011541946/article/details/85806968