Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
public:interruption_calcul [2013/08/26 16:13] nils.kredens@ens-lyon.fr |
public:interruption_calcul [2016/10/25 11:59] matthieu.decorde@ens-lyon.fr |
||
---|---|---|---|
Ligne 16: | Ligne 16: | ||
Voici le protocole de conception de la solution: | Voici le protocole de conception de la solution: | ||
- | * [[threads_java|Analyser l'architecture courante de la gestion des threads]] | + | * [[prive:threads_java|Analyser l'architecture courante de la gestion des threads]] |
* Définir la méthode d'arrêt d'un thread (signal, exception...) | * Définir la méthode d'arrêt d'un thread (signal, exception...) | ||
* Effectuer des tests (stabilité, zones critiques (écriture sur disque...)) | * Effectuer des tests (stabilité, zones critiques (écriture sur disque...)) | ||
Ligne 117: | Ligne 117: | ||
* Acquérir le sémaphore pour éviter les conflits | * Acquérir le sémaphore pour éviter les conflits | ||
* Lancer myThread.stop() | * Lancer myThread.stop() | ||
+ | |||
+ | === Stockage de résultats === | ||
+ | |||
+ | Un jobHandler s’exécute dans le cadre du scheduler d'Eclipse et est donc Asynchrone. Pour attendre la fin de son travail, il faut appeler la méthode "join" du JobHandler. | ||
+ | |||
+ | On peut vérifier le status de sortie du JobHandler avec la méthode getResult : | ||
+ | <code> | ||
+ | if (job.getResult() == Status.OK_STATUS) { // ou Status.CANCEL.STATUS | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Enfin on rajoute la méthode "getResultObject()" que la JobHandler doit implémenter pour retourner le résultat du travail et faire quelque chose avec : | ||
+ | <code> | ||
+ | if (job.getResult() == Status.OK_STATUS) { // ou Status.CANCEL.STATUS | ||
+ | MonResultat result = (MonResultat) job.getResultObject(); // non null | ||
+ | // ... | ||
+ | } | ||
+ | </code> | ||
==== Principe général ==== | ==== Principe général ==== |