Thread résultat
Résolu
ben
-
ben -
ben -
Bonjour,
je voudrais savoir s'il y a un moyen de récupérer le résultat d'un thread puisque la méthode run ne peut prendre aucun parametre et ne peut en retourner.
ex: récupérer la somme de 2 nombres pour ensuite le traiter dans le main ou dans un autre thread
Merci pour votre aide.
je voudrais savoir s'il y a un moyen de récupérer le résultat d'un thread puisque la méthode run ne peut prendre aucun parametre et ne peut en retourner.
ex: récupérer la somme de 2 nombres pour ensuite le traiter dans le main ou dans un autre thread
Merci pour votre aide.
2 réponses
-
Tu peux faire comme ceci par exemple :
public class ThreadWithResult<E> extends Thread { private E result; // null par défaut private boolean known; // false par défaut public E getResult() throws IllegalStateException { if (known) return result; else throw new IllegalStateException("Result is not kwnown."); } public void setResult(E result) { known = true; this.result = result; } public boolean isKnown() { return known; } } public class Test { public static void main(String[] args) throws InterruptedException { ThreadWithResult<Integer> t = new ThreadWithResult<Integer>() { @Override public void run() { setResult(1+2); } }; t.start(); t.join(); // attend que le run soit terminé System.out.println(t.getResult()); } } -
Merci bcp pour ton aide, pour la résolution de mon problème j'ai juste utilisé une class intermédiaire pour contenir le résultat de mon thread.
Merci