如果一个进程无法完成意味着如果它被卡住了......我怎么能意识到它并终止它。
我正在开发一个处理数百万个文件的软件,每个文件需要几秒钟才能处理,但有些文件在处理过程中卡住了,我想**
跳过那些文件。
** 我怎样才能做到这一点??
细节:
文件首先被解析 ------> 然后将其转换为 .adv 文件 ---------> 稍后转换为三元组 .tpl
一些文件在生成 .adv 文件时卡住了。
如果一个进程无法完成意味着如果它被卡住了......我怎么能意识到它并终止它。
我正在开发一个处理数百万个文件的软件,每个文件需要几秒钟才能处理,但有些文件在处理过程中卡住了,我想**
跳过那些文件。
** 我怎样才能做到这一点??
细节:
文件首先被解析 ------> 然后将其转换为 .adv 文件 ---------> 稍后转换为三元组 .tpl
一些文件在生成 .adv 文件时卡住了。
在跳过一个文件之前,决定你愿意花多少时间来生成一个文件。您可以设置具有该时间限制的计时器,并检查自上次关闭以来它是否仍在上传相同的文件。您不应该注意到仅使用一个执行简单检查的计时器在 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 的任何想法?