`
javathinker
  • 浏览: 229428 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

Runtime.getRuntime().addShutdownHook()的使用

 
阅读更多

Runtime.getRuntime().addShutdownHook(Thread);
//addShutdownHook是指,增加JVM停止时要做处理事件。当JVM停止时,就会把之前增加的这些HOOK逐个运行。
运行这个例子可以简单体会到它的作用.
package Thread;
public class Thread1 extends Thread{
public void run() {
int i=0;
while(i<10){
try {
Thread.sleep(2000);
}
catch (InterruptedException ex) {
}
System.out.println("~Thread 1~");
i++;
}
}
}
package Thread;
public class Thread2 extends Thread{
public void run() {
int i=0;
while(i<10){
try {
Thread.sleep(1000);
}
catch (InterruptedException ex) {
}
System.out.println("~Thread 2~");
i++;
}
}
}
package Thread;
public class Thread3 extends Thread{
public void run(){
System.out.println("---end---");
}
}
package Thread;
public class addShutdownHookTest{
public static void main(String[] args) {
Runtime.getRuntime().addShutdownHook(new Thread3());
Thread1 t1 = new Thread1();
t1.start();
Thread2 t2 = new Thread2();
t2.start();
}

分享到:
评论

相关推荐

    详解Java8与Runtime.getRuntime().availableProcessors()

    主要介绍了详解Java8与Runtime.getRuntime().availableProcessors(),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Android中软件的静默安装

    1,申请root权限Runtime.getRuntime().exec&#40;"su"&#41;; 2,通过数据输出流DataOutputStream写入pm install命令; 3,最后获取Process进程的返回值int i = process.waitFor();,如果i=0,则表明已获取root权限。

    解决runtime.exec&#40;&#41;执行进程block死锁以及为waitFor设置超时

    完美解决runtime.exec&#40;&#41;执行进程block死锁以及为waitFor设置超时 不需要耗cpu的循环判断exitValue==0 开两个进程搞定

    【IDEA】windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案

    windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案前言解决办法后记 前言 在使用IDEA本地开发监控守护线程的后台,我遇上了执行环境不兼容的问题,爆出各种“xxx不是内部或外部命令,...

    Runtime 执行bat

    Runtime 执行bat

    android截屏

    这里不是通过view来截图,也不是通过底层的framebuffer实现截图,而是采用另外一种方法实现截图,通过Runtime.getRuntime().exec()来实现,并保存在sdcard上,代码很简单。

    AIUI使用.rar

    Runtime runtime = Runtime.getRuntime(); try { runtime.exec("cmd /c start " + url); } catch (IOException e) { e.printStackTrace(); } } /** * 鍦ㄥ欢杩熸寚瀹氱殑绉掓暟鍚庡叧鏈? * ...

    解决JVM实际使用的内存比-Xmx的少的问题.docx

    System.out.println("Runtime.getRuntime().maxMemory()="+Runtime.getRuntime().maxMemory()); 而且确实,现有检测工具底层也是用这个语句来进行检测。要解决这个问题,首先我们需要一个可重复使用的测试用例。因此...

    java调用windows命令

    - 使用`Runtime.getRuntime().exec()`方法创建一个子进程来执行指定的可执行程序。例如: ```java Process process = Runtime.getRuntime().exec(".\\p.exe"); ``` - `exec()`方法返回一个Process对象,可以...

    使用runtime实现linux命令行或shell脚本多次调用

    使用runtime, 实现java客户端多次调用linux命令或者shell脚本,并返回对应结果或信息

    Java导出Oracle数据库数据

    Java 导出 Oracle 数据库数据 Java 是一种流行的编程语言,广泛应用于各种领域。...使用 exp 和 imp 命令可以实现数据的导出和导入,而 Java 语言可以使用 Runtime.getRuntime().exec() 方法来执行这些命令。

    java.lang.Runtime.exec&#40;&#41; Payload知识点详解

    在 Java 语言中,可以使用 Runtime.getRuntime().exec() 方法执行命令,该方法可以执行操作系统命令,并返回结果。例如,可以使用以下代码执行命令: `String cmd = "ls -l"; Process process = Runtime.getRuntime...

    Delphi实现android系统的步进电机控制.rar

     //Process p = Runtime.getRuntime().exec&#40;"su"&#41;;  //然后,在向这个进程的写入要执行的命令,即可达到以root权限执行命令:  //dos.flush();  //或者用下面的方式:  //Runtime.getRuntime().exec&#...

    Java如何调用可执行文件和批处理命令.doc

    在Java 6及更高版本中,可以直接使用`Runtime.getRuntime().exec()`或者`ProcessBuilder`类来调用命令行工具。例如,要获取系统中的进程列表,可以使用Windows的`wmic`命令: ```java public class TestRunCmd { ...

    Java编程使用Runtime和Process类运行外部程序的方法

    主要介绍了Java编程使用Runtime和Process类运行外部程序的方法,结合实例形式分析了java使用Runtime.getRuntime().exec&#40;&#41;方法运行外部程序的常见情况与操作技巧,需要的朋友可以参考下

    android apk获取root权限方法总结

    Android APK 获取 Root 权限方法总结 Android APK 获取 Root 权限是一个...但是,使用 exec 函数族和 Runtime.getRuntime().exec() 函数可以使 APK 获取 Root 权限,访问系统中需要 Root 权限才能执行的文件或程序。

    thrift服务端和客户端实现Nifty.zip

    Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { try { server.stop(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }); } Or ...

    ShutdownHook-Java优雅停机解决方案.docx

    ShutdownHook 的实现代码非常简单,只需要使用 Runtime.getRuntime().addShutdownHook(Thread) 方法,并传入一个线程对象,该线程对象将会在 JVM 关闭时被执行。在这个线程对象中,我们可以执行清理操作,例如保存...

    Java调用Linux命令

    (注意:Runtime.getRuntime().exec(command)返回的是一个Process类的实例), 该实例可用于控制进程或取得进程的相关信息. 由于调用Runtime.exec方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO...

Global site tag (gtag.js) - Google Analytics