Er mag mein join nicht.
Folgendes, was ich viel sinnvoller finde, mag er auch nicht:
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < COUNT; i++) {
new SleepingThread();
//schreib hier deinen Code
Thread.currentThread().join(40);
}
Die Ausgabe macht genau was sie soll. Jeder Thread wird nacheinander abgearbeitet.
Kann mir bitte jemand sagen, was falsch sein soll?
Danke.
package de.codegym.task.task16.task1622;
/*
Aufeinanderfolgende Threads
*/
public class Solution {
public volatile static int COUNT = 4;
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < COUNT; i++) {
SleepingThread sleep = new SleepingThread();
//schreib hier deinen Code
sleep.join(40);
}
}
public static class SleepingThread extends Thread {
private static volatile int threadCount = 0;
private volatile int countdownIndex = COUNT;
public SleepingThread() {
super(String.valueOf(++threadCount));
start();
}
public void run() {
while (true) {
System.out.println(this);
if (--countdownIndex == 0) return;
//schreib hier deinen Code
try {
Thread.sleep(10);
} catch (InterruptedException e) {
System.out.println("Thread unterbrochen");;
}
}
}
public String toString() {
return "#" + getName() + ": " + countdownIndex;
}
}
}