Я хочу измерить полное время выполнения (когда ВСЕ потоки выполнены). Но мой код здесь не будет работать, потому что, когда основной метод завершается, а другие потоки все еще работают, потому что им требуется больше времени для обработки, чем основному методу.
class Hello extends Thread {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("Hello");
try {
Thread.sleep(500);
} catch (final Exception e) {
}
}
}
}
class Hi extends Thread {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("Hi");
try {
Thread.sleep(500);
} catch (final Exception e) {
}
}
}
}
public class MultiThread {
public static void main(String[] args) {
final long startTime = System.nanoTime();
final Hello hello = new Hello();
final Hi hi = new Hi();
hello.start();
hi.start();
final long time = System.nanoTime() - startTime;
System.out.println("time to execute whole code: " + time);
}
}
Я пытаюсь найти время выполнения, когда программа выполняется в одном потоке против многопоточности, используя System.nanoTime()
для измерения времени.