Ich versuche, zwei Threads in der gleichen Zeit zu arbeiten. Lassen Sie mich mit dem Code erklären:Zwei Threads gleichzeitig ausführen (Multithreading?)
Hauptklasse, die beiden Fäden laufen
public static void main(String[] args) {
abThread.move(5);
cdThread.move(5);
}
Gewinde 1:
static void move(int i) {
int min = 0;
int max = 100;
while (i > 0) {
int a = ThreadLocalRandom.current().nextInt(min, max + 1);
// try {
// Thread.sleep(100);
// } catch (Exception e) {
// }
if ((a % 2) == 1) {
System.out.println("a");
i -= 1;
continue;
} else {
System.out.println("b");
i -= 1;
continue;
}
}
}
Thema 2:
static void move(int i) {
int min = 0;
int max = 100;
while (i > 0) {
int a = ThreadLocalRandom.current().nextInt(min, max + 1);
// try {
// Thread.sleep(100);
// } catch (Exception e) {
// }
if ((a % 2) == 1) {
System.out.println("c");
i -= 1;
continue;
} else {
System.out.println("d");
i -= 1;
continue;
}
}
}
Im immer zufällig a/bx 5 und nach 5 von ihnen bin ich zufällig (c/d) x5
Mein Ziel ist es, a/b, c/d, a/b, c/d ... und so weiter
Jede Hilfe oder Weiterleitung zu irgendeinem Weg - würde es sehr schätzen!
Edit: Beachten Sie, ich versuchte mit versuchen, Schlaf, aber es verschiebt nur, wie lange vor dem nächsten a/b nach a/b. Nur so konnte ich es a/b, c/b
abThread.move(1);
cdThread.move(1);
abThread.move(1);
......
Dank
Sie erscheinen alle Arbeiten in Ihrem Haupt-Thread zu tun, und keiner in den dargestellten Themen von 'abThread 'und' cdThread'. Das Aufrufen einer Methode für eine 'Thread'-Instanz führt nicht dazu, dass die Arbeit im Ausführungsthread ausgeführt wird, der von diesem Objekt dargestellt wird. –
Ja, irgendeine Idee, Richtung? :) – joe123