Hallo Leute,
Ich versuche seid vielen Stunden zwei Threads gleichzeitig laufen zu lassen, jedoch zeigt mir der Editor eine sequenzielle Abfolge der Ausgaben. Außerdem möchte ich die benötigte Zeit für die Ausführung des Codes dokumentieren, deswegen die Methode currentTimeMillis. Um gleich auf den Punkte zu kommen, zeige ich euch meinen Code.
Ich habe eine Klasse, die mit der run()-Methode:
Wenn ich die Main-Methode aufrufe, kommt die folge Ausgabe:
Wie ihr sehen könnt, ist die Ausgabe sequenziell.
Was kann ich machen, um die Ausgabe parallel zu starten?
Ich versuche seid vielen Stunden zwei Threads gleichzeitig laufen zu lassen, jedoch zeigt mir der Editor eine sequenzielle Abfolge der Ausgaben. Außerdem möchte ich die benötigte Zeit für die Ausführung des Codes dokumentieren, deswegen die Methode currentTimeMillis. Um gleich auf den Punkte zu kommen, zeige ich euch meinen Code.
Ich habe eine Klasse, die mit der run()-Methode:
Java:
public class ZahlenAddieren extends Thread {
int x = 5;
int y = 50000000;
public void run () {
final long timeStart = System.currentTimeMillis();
while(x<40) {
System.out.println(x+y);
x++;
}
final long timeEnd = System.currentTimeMillis();
System.out.println("Verlaufszeit der Schleife: " + (timeEnd - timeStart) + " Millisek.");
}
}
Java:
public class Multithreading {
public static void main(String[] args) {
// TODO Auto-generated method stub
ZahlenAddieren O = new ZahlenAddieren() ;
ZahlenAddieren P = new ZahlenAddieren() ;
final long timeStart = System.currentTimeMillis();
O.start();
P.start();
final long timeEnd = System.currentTimeMillis();
System.out.println("Verlaufszeit der Schleife: " + (timeEnd - timeStart) + " Millisek.");
}
}
Wenn ich die Main-Methode aufrufe, kommt die folge Ausgabe:
Java:
Verlaufszeit der Schleife: 0 Millisek.
50000005
50000006
50000007
50000008
50000009
50000010
50000011
50000012
50000013
50000014
50000015
50000016
50000017
50000018
50000019
50000020
50000021
50000022
50000023
50000024
50000025
50000026
50000027
50000028
50000029
50000030
50000031
50000032
50000033
50000034
50000035
50000036
50000037
50000038
50000039
50000005
50000006
50000007
50000008
50000009
50000010
50000011
50000012
50000013
50000014
50000015
50000016
50000017
50000018
50000019
50000020
50000021
50000022
50000023
50000024
50000025
50000026
50000027
50000028
50000029
50000030
50000031
50000032
50000033
50000034
50000035
50000036
50000037
50000038
50000039
Verlaufszeit der Schleife: 1006 Millisek.
Verlaufszeit der Schleife: 1023 Millisek.
Wie ihr sehen könnt, ist die Ausgabe sequenziell.
Was kann ich machen, um die Ausgabe parallel zu starten?