Hallo zusammen, ich habe gerade angafangen mich in Threads einzuarbeiten.
Nun habe ich folgendes Test-Programm geschrieben. Es soll eigentlich wenn man "start" eingibt
einen Thread starten der eine Variable hochzählt. Bei der Eingabe von "stop" soll der Thread stoppen
und die Variable ausgegeben werden. Nun bekomme ich aber wenn ich "stop" eingegeben habe nicht den Wert der Variable ausgegeben. Kann mir einer sagen was ich falsch gemacht habe???
Der Code sieht wie folgt aus:
Nun habe ich folgendes Test-Programm geschrieben. Es soll eigentlich wenn man "start" eingibt
einen Thread starten der eine Variable hochzählt. Bei der Eingabe von "stop" soll der Thread stoppen
und die Variable ausgegeben werden. Nun bekomme ich aber wenn ich "stop" eingegeben habe nicht den Wert der Variable ausgegeben. Kann mir einer sagen was ich falsch gemacht habe???
Der Code sieht wie folgt aus:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ThreadWindow {
int i = 0;
ThreadClass thread = null;
public static void main(String[] args) {
ThreadWindow fenster = new ThreadWindow();
fenster.go();
}
public void go(){
String in = null;
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Start?");
try {
in = input.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if(in == "start"){
thread = new ThreadClass();
thread.start();
}
System.out.println("stop?");
try {
in = input.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if(in == "stop"){
i = thread.a;
System.out.println(i);
thread.interrupt();
}
}
class ThreadClass extends Thread {
public int a;
public void run(){
while(isInterrupted() == false){
a++;
try {
sleep(100);
} catch (InterruptedException e) {
return;
}
}
}
}
}