我是 Java 新手,使用某人给出的代码。在那里,在代码的末尾,如果线程还没有完成,他们会中断它。我正在测量代码的时间。
问题是 Java 代码首先发出所有线程,然后在最后中断。有必要打断吗?我们不能等到所有线程真正完成吗?或者可能只是跳过中断(这些线程正在使用 process exec 命令运行进程,它们无论如何都会完成)。这是相关的代码。首先是单个线程的代码:
String commandString = "./script.scr ";
process = Runtime.getRuntime().exec(commandString);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((lsString = bufferedReader.readLine()) != null)
{
System.out.println(lsString);
}
try
{
process.waitFor();
}
现在分派这些线程的部分的代码:
public void stopWhenAllTaskFinished()
{
while(notFinished) {sleep(50);} //notFinished is class variable and somewhere else it will set to false.
//now finished.
//Interrupt all the threads
for (int i=0; i<nThreads; i++) {
threads[i].interrupt();
}
}
这个函数是从主类调用的,例如:
obj.stopWhenAllTaskFinished()
我非常感谢任何见解或答案。