2

如果一个进程无法完成意味着如果它被卡住了......我怎么能意识到它并终止它。

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

跳过那些文件。

** 我怎样才能做到这一点??

细节:

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

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

4

1 回答 1

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 的任何想法?

于 2013-06-07T06:38:33.513 回答