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()

Я очень ценю любую информацию или ответ.

6
задан user984260 2 May 2012 в 02:11
поделиться