Aller au contenu

Comment mettre en place des compteurs de type ScheduledThreadPoolExecutor


blubsy

Recommended Posts

Bonjour,

j'ai besoin de mettre en place X compteur lancer séparément et pouvant etre arrété de façon indépendante.

J'ai mis en place un compteur de type ScheduledThreadPoolExecutor qui fonctionne très bien mais je voudrais donné à ses compteur un id afin de pouvoir les arrêté facilement.

J'avais mis mon compteur dans un Hashtable mais cela ne fonctionne pas alors comment je peut faire ou que fais je de mal ?

Merci par avance pour votre aide.

Mon code :

final Hashtable<String, ScheduledFuture<?>> sA = new Hashtable<String, ScheduledFuture<?>>();
ScheduledFuture<?> s;


private void testPPP(final int iTempMax, final String sId) {

ScheduledThreadPoolExecutor stpe = new ScheduledThreadPoolExecutor(iTempMax);

s = stpe.schedule(new Runnable() {
public void run() {
// Ajout dans la table alerte
Log.i("SU", "testPPP / ScheduledFuture : ALERTE / iTempMax : " + iTempMax); 
}
},  iTempMax, TimeUnit.SECONDS);


sA.put(sId, s);
}

Et pour stopper un compteur :

sA.get(sId).cancel(true);

Lien vers le commentaire
Partager sur d’autres sites

Et qu'est-ce qui "ne fonctionne pas" ? Tu as une erreur / exception ? ... ?

Petite remarque: tu ne devrais avoir qu'une seule instance de ScheduledThreadPoolExecutor, dans lequel tu schedule toutes tes taches au fur et à mesure. Ce ScheduledThreadPoolExecutor doit être paramétré avec la taille du pool de thread (nombre max de tache traitées en // à un instant donné). Pas sûr que la valeur que tu passes actuellement (iTempMax) soit adaptée, tu risques de saturer en thread ta machine assez rapidement...

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...