我是Java新手,使用某人給出的代碼。在那裏,在代碼的最後,如果它還沒有完成,它們會中斷一個線程。我正在測量代碼的時間。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()
我很大感謝任何見解或答案。
很遺憾,您的描述過於模糊。中斷可能需要也可能不需要。這一切都取決於'線程'的作用。 – Frankie
我已經添加了相關的代碼 – user984260
老實說,它看起來像一個偏執的檢查從未發生過的事情。 – trutheality