Also angenommen ich lasse mehrere Nebenthreads gleichzeitig laufen.
Ist es irgendwie möglich, aus dem Main Thread heraus zu bestimmen, wann welcher fertig ist und dann sofort darauf zu reagieren? Allerdings ohne im jeweiligen Threadobject eingreifen zu können (dort also kein Notify oder ähnliches).
Habe eben mal versucht, die Threads einem Vector hinzuzufügen und diesen immer wieder durchlaufen zu lassen, bis !isAlive() wahr wird (dann Thread aus Vector entfernen), aber das hat nicht so richtig funktioniert, und ist wahrscheinlich ne ziemlich dämliche Art und Weise.
Jemand einen Vorschlag?
Edit: mein Versuch, kann man das so machen? Scheint irgendwie zu funktionieren.
Ist es irgendwie möglich, aus dem Main Thread heraus zu bestimmen, wann welcher fertig ist und dann sofort darauf zu reagieren? Allerdings ohne im jeweiligen Threadobject eingreifen zu können (dort also kein Notify oder ähnliches).
Habe eben mal versucht, die Threads einem Vector hinzuzufügen und diesen immer wieder durchlaufen zu lassen, bis !isAlive() wahr wird (dann Thread aus Vector entfernen), aber das hat nicht so richtig funktioniert, und ist wahrscheinlich ne ziemlich dämliche Art und Weise.
Jemand einen Vorschlag?
Edit: mein Versuch, kann man das so machen? Scheint irgendwie zu funktionieren.
Code:
public void addResources(Object[] searchResources) {
for (int i=0;i<searchResources.length;i++){
...
//start Thread
try {
Thread t = (Thread)resourceObject;
threads.add(t); //Vector, dem Threads hinzugefügt werden
t.start();
}
catch (Exception ex) {ex.printStackTrace();}
}
traverseThreads(threads);
}
public void traverseThreads(Vector threads){
for (int i=0;i<threads.size();i++){
Thread t = (Thread)threads.elementAt(i);
if (!t.isAlive()){
this.threads.remove(t);
addResourceKeywords(t);
}
try {
Thread.currentThread().sleep(10);
}
catch (InterruptedException ex) {
}
traverseThreads(this.threads);
}
}