Hallo,
ich habe eine frage bezüglich threads.
ich weiss, dass ich in meiner run methode eine boolean einbauen soll, mit der ich abbrechen kann.
so weit so gut, macht auch das was es soll...
ABER
wie stoppe ich den thread, wenn ich in der while schleife einen funktionsaufruf habe, der nicht antwortet?
dann kommt er ja nie zur while bedingung und fragt sich nie ob er aufhören solll...
und somit beendet sich der thread nie, reagiert auf kein interrupt oder cancel etc...
anwendungsbereich ist der, dass ich ein dbquery in einen thread auslagern will, um diesen abbrechen zu können (zb wenn es mir zu lange dauert und ich eine andere abfrage machen möchte...)
des weiteren möchte ich statusänderungen zurückgeben (fortschritt...)
die queries funktionieren, also fehlt nur noch das problem mit den threads :autsch:
PS: ich habe eine liste von threads, die sich selbst verwaltet. wird ein thread beendet, wird er automatisch aus der liste entfernt, wird ein neuer thread gestartet, wird er in die liste eingetragen. (es ist nicht gedacht dass etliche threads gestartet werden! max = 3)
ich habe eine frage bezüglich threads.
ich weiss, dass ich in meiner run methode eine boolean einbauen soll, mit der ich abbrechen kann.
so weit so gut, macht auch das was es soll...
Java:
@Override
public void run() {
while (!isInterrupted() && !cancel) {
}
System.out.println("Child thread " + super.getName() + " finished!");
}
ABER
wie stoppe ich den thread, wenn ich in der while schleife einen funktionsaufruf habe, der nicht antwortet?
dann kommt er ja nie zur while bedingung und fragt sich nie ob er aufhören solll...
und somit beendet sich der thread nie, reagiert auf kein interrupt oder cancel etc...
anwendungsbereich ist der, dass ich ein dbquery in einen thread auslagern will, um diesen abbrechen zu können (zb wenn es mir zu lange dauert und ich eine andere abfrage machen möchte...)
des weiteren möchte ich statusänderungen zurückgeben (fortschritt...)
die queries funktionieren, also fehlt nur noch das problem mit den threads :autsch:
PS: ich habe eine liste von threads, die sich selbst verwaltet. wird ein thread beendet, wird er automatisch aus der liste entfernt, wird ein neuer thread gestartet, wird er in die liste eingetragen. (es ist nicht gedacht dass etliche threads gestartet werden! max = 3)