M
Meier9076
Gast
Hallo,
ich habe ein kleines Verständnisproblem mit Threads. Meine Ausgangslage ist wie folgt: Ich habe zum einen meinen Hauptthread, wo ich ganz am Anfang einen Nebenthread starte (in diesem wird auf Netzwerktraffic gewartet), wenn spezieller Traffic ankommt soll ein Objekt in dem Hauptthread geändert werden. Komischerweise wird das Objekt aber nicht geändert, er geht jedoch in die Methode die ich vom nebenläufigen Thread aus aufrufe rein.
Hier der HauptThread:
Und der Nebenläufige Thread:
Was ich nun gerne hätte, ist das wenn der NetworkThread einmal durchgelaufen ist, dass die Variable test sich auf true geändert hat. Leider geschieht dies jedoch nicht. Kann mir bitte jemand sagen, was ich noch falsch mache?
Vielen Dank.-
Grüße
ich habe ein kleines Verständnisproblem mit Threads. Meine Ausgangslage ist wie folgt: Ich habe zum einen meinen Hauptthread, wo ich ganz am Anfang einen Nebenthread starte (in diesem wird auf Netzwerktraffic gewartet), wenn spezieller Traffic ankommt soll ein Objekt in dem Hauptthread geändert werden. Komischerweise wird das Objekt aber nicht geändert, er geht jedoch in die Methode die ich vom nebenläufigen Thread aus aufrufe rein.
Hier der HauptThread:
Java:
private boolean test = false;
public Test(){
inits();
new NetworkThread(this);
}
public void changedByExternalThread(){
test = true
}
Java:
public class NetworkThread extends Thread{
private Test t;
new NetworkThread(Test t){
this.t = t;
start();
}
public void run(){
try{
ServerSocket ss = new ServerSocket(7070);
while(true){
try {
ss.setSoTimeout(500);
Socket s = ss.accept();
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
t.changedByExternalThread();
}catch(SocketTimeoutException e){}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
Was ich nun gerne hätte, ist das wenn der NetworkThread einmal durchgelaufen ist, dass die Variable test sich auf true geändert hat. Leider geschieht dies jedoch nicht. Kann mir bitte jemand sagen, was ich noch falsch mache?
Vielen Dank.-
Grüße