【问题标题】:How to terminate a process in java?如何终止java中的进程?
【发布时间】:2013-06-03 08:41:33
【问题描述】:

如果进程无法完成意味着如果它卡住... 我怎样才能意识到它并终止它。

我正在开发一个处理数百万个文件的软件,每个文件需要几秒钟的时间来处理,但有些文件在处理过程中卡住了,我想**

跳过这些文件。

** 我该怎么做??

详情:

文件首先被解析 ------> 然后将其转换为 .adv 文件 ---------> 稍后转换为三元组 .tpl

一些文件在生成 .adv 文件时卡住了。

【问题讨论】:

  • 您可能想尝试使用超时。
  • 我尝试使用计时器类,但它会消耗自己的执行时间,最终会增加 CPU 开销。
  • 您可以将计数值设置为特定线程的时间,如果该时间 == 某个所需值,则终止该线程

标签: java multithreading process kill-process


【解决方案1】:

在跳过一个文件之前,确定您愿意花费多少时间来生成一个文件。您可以设置具有该时间限制的计时器,并检查自上次关闭以来它是否仍在上传相同的文件。仅使用一个执行简单检查的计时器,您应该不会注意到 CPU 性能有这么大的差异。

编辑:

fileTimer = new Timer(maxDelay, checkFile);
fileTimer.start();
//set currentFile


ActionListener checkFile = new ActionListener() {
    String lastFile;
    public void actionPerformed(ActionEvent e) {
        if (this.lastFile == currentFile)
            //terminate process
        else
            lastFile = currentFile
    }

}

我不太确定如何终止该进程。我对多线程不是很熟悉。对@anshulkatta 有什么想法吗?

【讨论】:

  • 不错的答案,详细说明,以编程方式举例
猜你喜欢
  • 2012-04-24
  • 2018-09-30
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 2015-01-27
  • 1970-01-01
  • 2011-06-05
相关资源
最近更新 更多