当前位置: 首页 > 面试题库 >

我何时需要调用此方法Runtime.getRuntime()。addShutdownHook()

冷善
2023-03-14
问题内容

我实际上何时需要调用此方法Runtime.getRuntime()。addShutdownHook()以及何时或为何需要关闭应用程序。任何人都可以通过举例说明一下。

谢谢


问题答案:

据我所知,我将在下面进行解释。您可以搜索它并找到很多信息。

addShutdownHook()将注册一些在程序终止时要执行的动作。您启动的程序以两种方式结束:

  1. 主线程(根)结束其运行上下文;
  2. 该程序遇到一些意外情况,因此无法继续进行。

如果添加ShutdownHook,则该钩子将启动一个仅在终止时才开始运行的线程。例如:

 Runtime.getRuntime().addShutdownHook(new Thread() {
      public void run() {
        System.out.println("Running Shutdown Hook");
      }
    });

Running Shutdown Hook在程序终止时随时打印一个。您甚至可以致电System.exit(0)

例如,您可以在Google上搜索到足够的信息。而“何时使用此问题”就像问“ 声明catch中有什么作用try-catch”。

您可能有许多情况,例如:

  • 您的程序在文件系统中创建了许多要删除的临时文件;
  • 您需要在终止之前向另一个进程/机器发送求救信号;
  • 对意外行为执行任何清理操作,日志记录或错误后操作。

所有这些都将需要一段时间。

例如,您可以在此处输入示例1或示例2



 类似资料:
  • 问题内容: 在创建iOS应用时,我确切地知道何时需要致电?我知道这与更新/重绘UI有关。但是,每次更改任何视图时,都需要调用此名称吗? 例如,我需要调用它吗: 以编程方式更改文本字段中的文本之后 更改视图背景时? 当我在viewDidLoad中进行更改时? 在viewDidAppear中怎么样? 有人可以给我一些有关何时使用此方法的一般指导吗? 问题答案: 如果您在UIView的子类中重写draw

  • 我需要做一些异步方法。不要等到它执行。我尝试未来,但它没有帮助。 但这里的日志: 正如您所见,日志打印“onFailedLogonSimulation:after”是在10秒后调用的。但我需要日志在“OnFailedLogonSimulation:before”之后每天打印。不等待单元异步方法调用完成。

  • 问题内容: 咨询JavaDocs和该方法的源代码后,我发现: 可以看出,在处的本机方法调用在同步块之外。因此,如果不将对方法的调用放入块中,是否安全? 它是线程安全的吗?如果有多个线程尝试同时中断它怎么办?这样,本机方法将如何表现? 问题答案: 我会说是的…这是线程安全的。 原因: 如果应用程序有必要在一个块中调用,那么规范(javadoc)会这样说,并且还说出需要同步到哪个对象以获得线程安全。实

  • 问题内容: 我见过的每一个tkinter教程都声称必须绘制窗口并处理事件,并且它们总是调用此函数,即使在hello world程序中也是如此。但是,当我在交互式外壳程序中尝试这些方法时,可以正确绘制窗口,而不必调用mainloop。 这个在tkinter中嵌入matplotlib图形的示例产生了一个相对复杂的应用程序,它具有用于在tkinter窗口内平移,缩放和调整图大小的按钮,而且,如果您删除对

  • 我想使用“jdeps”命令来分析一些jar文件的依赖关系。我的操作系统是Windows10。核心代码是 我的计算机中有2个JDK版本,JDK11和JDK8。我想使用JDK11,我将环境变量JAVA_HOMEJDK11的路径。当我使用cmd windows执行代码时,它可以按照我想要的方式工作,但是如果我在Intellij Idea中运行它,JDK将更改为JDK8。 我确定我已经把项目设置-项目-项

  • 假设我有以下代码: 是否有可能在中调用来自的的编译器错误?我知道实际上你会把那个方法放在构造函数中,但这个问题是出于好奇。