本文共 1176 字,大约阅读时间需要 3 分钟。
这篇来学习多线程中的一个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对象,这就是一个饿汉式的单例模式。
转载地址:http://dzows.baihongyu.com/