`
klts
  • 浏览: 39226 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论
  • klts: 我一直用的jdk1.6.0_13,感觉还可以
    JDK
  • wuyulunbi: 现在jdk什么版本的稳定
    JDK

关闭程序执行直到程序运行完

 
阅读更多

Runtime.getRuntime().addShutdownHook(new Thread());程序正常或非正常时一定会执行的方法,通过这个方法可以让程序在关闭前执行相应的操作。

下面是在关闭程序前一定要执行完代码再关闭的程序。

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ShMain extends Thread {
  @SuppressWarnings("static-access")
  public void run(){
    while (!this.isInterrupted()) {
      try {
        System.out.println("hello10秒前");
        this.sleep(1000*10);
        System.out.println("hello10秒后");
        this.sleep(1000*10);
        System.out.println("hello20秒后");
        if (!isRun) {
          Runtime.getRuntime().exit(0);
        }
      }
      catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
  boolean isRun = true;

  public void stopThread(){
    isRun = false;
  }
 
  public static void main(String[] args) {
    System.out.println("helloMain");
    ShMain sh = new ShMain();
    sh.start();
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String line;
    try{
      while(true){
        line = br.readLine();//判断是否是exit
        if(line.equals("exit")){
          sh.stopThread(); //结束线程
          break;
        }
      }
    }catch(Exception e) {}

  }
}

 

分享到:
评论

相关推荐

    监视程序进程关闭后再执行代码

    此代码可以不断监视某个进程是否在运行,直到这个进程关闭后,执行自己的代码

    Windows服务和IIS网站[应用程序池]监测工具

    这是一个采用.net4.0框架开发的Winform程序,可针对Windows系统的服务和IIS网站【应用程序池】进行实时监测,当程序检测到指定的服务...若要关闭程序则点击底部的程序图标按下鼠标右键后选择【退出】即可真正关闭程序。

    Windows服务和IIS网站[应用程序池]监测工具(新版)

    这是一个采用.net4.0框架开发的Winform程序,可针对Windows系统的服务和IIS网站【应用程序...若要关闭程序则点击底部的程序图标按下鼠标右键后选择【退出】即可真正关闭程序。 ⑨可设置该程序开机自启且自启后自动检测

    DELPHI专题文档-程序应用

    如何运行一个程序直到它结束 用De1phi编制汉字录入能力测试软件 一个实用的Delphi屏幕拷贝程序的设计 如何做一个SYSTRAY程序 查阅可视窗口标题 屏蔽系统功能键 状态条插入可视控件 如何隐藏和显示Windows的...

    DELPHI专题--程序应用

    如何运行一个程序直到它结束 用De1phi编制汉字录入能力测试软件 一个实用的Delphi屏幕拷贝程序的设计 如何做一个SYSTRAY程序 查阅可视窗口标题 屏蔽系统功能键 状态条插入可视控件 如何隐藏和显示Windows的...

    服务检测工具(即:当检测到服务停止后自动重启服务)

    这是一个采用.net4.0框架开发的Winform程序,可针对Windows系统的服务进行检测,当程序检测到指定的服务停止以后则自动重启服务,用...若要关闭程序则点击底部的程序图标按下鼠标右键后选择【退出】即可真正关闭程序。

    Windows服务和IIS网站[应用程序池]监测工具 ,采用.net4.0框架开发的Winform程序

    这是一个采用.net4.0框架开发的Winform程序,可针对Windows系统的服务和IIS网站【应用程序池】进行实时监测,当程序检测到指定的服务...若要关闭程序则点击底部的程序图标按下鼠标右键后选择【退出】即可真正关闭程序。

    record.exe监听程序

    该程序,通过vb编写,双击图标...当然你要测试监听程序的运行情况,可以双击启用,然后随意在键盘上按键,监听直到关闭窗体为止,关闭窗体时,在任务管理器中的应用程序下找到名为工程1的应用程序点击结束任务即可。

    八工位转盘机程序-三菱

    启动时,按照各工位开启关闭状态,从工位一往工位二三四依次执行,各工位可以随时开启关闭。按下停止时也同样从工位一二三四依次停止运行。各工位动作可以在手动状态下单步运行。工位二有缺料处理和运行中材料丢失...

    VHDL电梯控制器的程序

    4、 电梯到达有停站请求的楼层后,经过1s电梯打开,开门只是灯亮,开门4s后,电梯门关闭(关门指示灯灭),电梯继续运行,直至执行完请求信号后停在当前楼层。 5、 能记忆电梯内外的所以请求信号,并按照电梯运行...

    一个VHDL电梯控制器的程序

    4、 电梯到达有停站请求的楼层后,经过1s电梯打开,开门只是灯亮,开门4s后,电梯门关闭(关门指示灯灭),电梯继续运行,直至执行完请求信号后停在当前楼层。 5、 能记忆电梯内外的所以请求信号,并按照电梯运行...

    VC6.0dll解决程序卡死不消失BUG方法.zip

    关于win7及win10下编译程序程序卡死一直不消失,直到关闭VC6.0的环境才消失的BUG解决办法

    Visual C++程序开发范例宝典 - 第6章

    实例235 执行一个外部程序直到其结束 实例236 调用具有参数的可执行程序 实例237 编写控制面板小应用程序 实例238 编写Windows服务 实例239 阻止程序重复运行 6.7 线程同步 实例240 利用事件对象实现线程同步 实例...

    Visual C 程序开发范例宝典第6章

    cc实例184 执行一个外部程序直到其结束  cc实例185 调用具有参数的可执行程序  6.7 线程同步  cc实例186 利用事件对象实现线程同步  cc实例187 利用互斥对象实现线程同步  cc实例188 利用临界区...

    【原创绿色版】并发连接测试程序

    若本程序执行文件的名称为 “并发连接测试程序.exe”,那么它会自动载入“并发连接测试程序.ini”配置文件; 若此配置文件不存在,那么程序会自动生成一个。 配置文件中 [timeout_seconds] 节点是每次发送和接收...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    10.程序运行会出现空白的对话框,如下图。 11.我们双击文件列表的dialog.ui 文件,便出现了下面所示的图形界面编辑界 面。 12.我们在右边的器件栏里找到Label 标签器件 13.按着鼠标左键将其拖到设计窗口上,如下图。...

    如何查杀运行状态下的EXE、DLL病毒

     中毒后运行杀毒软件清除是不在话下的了,但为了防止杀毒软件误杀或是删掉你还处理完的文档和重要的邮件,你应该首先将它们转移备份到其他储存媒体上。有些长文件名的文件和未处理的邮件要求在windows下备份,所以...

    多任务定时运行的小软件

     当一个任务被自动启动并执行完后,便要等到程序重新启动才会被继续检测 和启动。 -------------------------------------------------------------------------------- 任务执行方式说明:  倒计时执行...

    linux设备驱动程序

    为此,《LINUX设备驱动程序(第3版)》提供了完整的示例程序,您不需要特殊的硬件即可编译和运行这些示例程序。《LINUX设备驱动程序(第3版)》还在单独的章节中讲述了PCI、USB和tty(终端)子系统。对期望了解操作系统...

    Visual C++ 程序开发范例宝典 源码 光盘 part2

    cc实例184 执行一个外部程序直到其结束 cc实例185 调用具有参数的可执行程序 6.7 线程同步 cc实例186 利用事件对象实现线程同步 cc实例187 利用互斥对象实现线程同步 cc实例188 利用临界区实现线程同步 ...

Global site tag (gtag.js) - Google Analytics