Die Fragen zu beenden:Wie man misst, wie lange ein Thread genau aus neuen nehmen in Java
- ist es trotzdem, um die genaue Zeit, um einen Faden von neuen nehmen zu beenden?
- Warum haben die Ergebnisse zu jeder Zeit große Unterschiede (siehe Code unten)?
der Code:
public void process2(){
final long start = System.currentTimeMillis();
Thread newT = new Thread(new Runnable() {
@Override
public void run() {
// long end = System.currentTimeMillis();
// System.out.println((end-start));
for (int i = 1, sum = 0; i < 1000; i++) {
sum += i;
}
}
});
long end1 = System.currentTimeMillis();
System.out.println("new thread time took :" + (end1 - start));
newT.start();
int i = 0;
while (newT.isAlive()) {
i++;
}
long end = System.currentTimeMillis();
System.out.println("total time:" + (end - start));
System.out.println("judge count:" + i);
}
Versuchen Sie Google Suche nach "Kontextwechsel" und "Software-Threads" – DwB
Sie messen auch die Main-Thread-Zeit, die While-Schleife, die ständig prüft, ist die Alive stiehlt CPU-Zyklen, stattdessen können Sie verwenden – ravthiru