Jump to content

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);

Link to comment
Share on other 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...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...