Java définir un rappel de l'ExecutorService

J'ai un fixedThreadPool que j'utilise pour exécuter un tas de threads de travail à réaliser en parallèle de l'exécution d'une tâche avec de nombreux composants.

Lorsque tous les threads ont fini, j'ai récupérer leurs résultats (qui sont assez grandes) à l'aide d'une méthode (getResult) et les écrire dans un fichier.

En fin de compte, pour économiser de la mémoire et d'être en mesure de voir les résultats intermédiaires, j'aimerais que chaque thread pour écrire son résultat dans le fichier dès qu'il termine l'exécution et ensuite de libérer sa mémoire.

Normalement, je voudrais ajouter du code à cet effet à la fin de la méthode run (). Cependant, certains autres objets de cette classe appelle aussi ces threads, mais NE veulent PAS à la rédaction de leurs résultats dans un fichier au lieu d'utiliser leurs résultats pour effectuer d'autres calculs, qui sont par la suite dans le fichier.

Donc, je me demandais si il est possible d'attacher une fonction de rappel pour le cas d'un fil de finition à l'aide de la ExecutorService. De cette façon, je peux récupérer immédiatement son résultat et de libérer de la mémoire, dans ce scénario, mais de ne pas casser le code, lorsque ces fils sont utilisés dans d'autres scénarios.

Est une chose possible?

OriginalL'auteur Alex | 2012-10-29