Hallo allerseits
Ich habe ein solcher Thread, der verschiedene Zustände durchläuft, bis FINISH gesetzt wird.
Nun habe ich mehrere solcher Threads und die sollen alle erst enden, wenn alle STEP2 durchlaufen haben. Ist der Ansatz mit Switch-Case schon unglücklich oder kriege ich das noch hin? Falls ja, wie?
Ich habe ein solcher Thread, der verschiedene Zustände durchläuft, bis FINISH gesetzt wird.
Code:
public class SynchronThread extends Thread {
enum State {
START, STEP1, STEP2, END, FINISH
}
public SynchronThread() {
state = State.START;
}
private State state;
public void run() {
while (this.state != State.FINISH) {
switch (state) {
case START:
System.out.println("Entering START state");
System.out.println("Finish START state" );
state = State.STEP1;
break;
case STEP1:
System.out.println("Entering STEP1 state");
System.out.println("Finish STEP1 state" );
state = State.STEP2;
break;
case STEP2:
System.out.println("Entering STEP2 state");
System.out.println("Finish STEP2 state" );
state = State.FINISH;
break;
default:
break;
}
}
}
Nun habe ich mehrere solcher Threads und die sollen alle erst enden, wenn alle STEP2 durchlaufen haben. Ist der Ansatz mit Switch-Case schon unglücklich oder kriege ich das noch hin? Falls ja, wie?