[Java] avis sur ce procédé de remplacement de suspend() / resume()

avis sur ce procédé de remplacement de suspend() / resume() [Java] - Java - Programmation

Marsh Posté le 18-12-2005 à 22:46:45    

salut
 
en train d'écrire une application multithreads, j'essaye de mettre en place un procédé de remplacement de la méthode suspend() (et resume() du coup) qui n'est pas très sure (suspend(), pas mon procédé ;) enfin...)
j'ai déjà fait pour stop(), c'est assez facile, et c'est décrit pas mal de fois, j'ai donc utilisé un procédé identique pour suspend()/resume():

public class monThread implements Runnable {
  public static boolean monThreadPause = false;
  ...
  public void run() {
    while( ) {
      ...
      while(this.monThreadPause) {
         try {(new Thread()).sleep(500);}
         catch (InterruptedException ie) {}
      }
    }
    ...
  }
  ...
 
  public void pause() {
    this.monThreadPause = !this.monThreadPause;
  }
}
 
 
public class monApp {
  private monThread monTh;
  private boolean monThEnPause = false;
  ...
      if(!this.monThEnPause) {
        //this.monTh.suspend();
        this.monTh.setPriority(Thread.MIN_PRIORITY);
        this.jLabelE.setText("en pause" );
      }
      else {
        //this.monTh.resume();
        this.monThsetPriority(Thread.NORM_PRIORITY);
        this.jLabelE.setText("en cours" );
      }
      this.monThEnPause = !this.monThEnPause;
      this.monTh.pause();
 
  ...
}


 
donc, comme vous pouvez voir, lors d'une pause, je "bloque" le thread dans une boucle infinie sur le booléen monThreadPause. ce booléen est positionné à true par une méthode de la classe du thread appelée par l'application (même principe que pour remplacer la méthode stop()). pour réduire le coût en ressources, j'ai fais 2 trucs: baisser la priorité du thread au minimal, positionner le thread dans l'état endormi (ici à la périodicité de 500ms)
(ps: juste pour info, je gère (pour le moment) de manière indépendante un booléen pour marquer l'état "pause" du thread qui est différent entre le thread lui-même et l'application)
 
le résultat attendu est obtenu: le thread se met bien pause et peut être relancé où il s'est arrêté, et il ne consomme pas ou très peu de ressources processeur
 
mais, comme je teste ça, sur mon intuition, je ne sais pas si c'est très propre, si on peut améliorer, ou si je me suis pris la tête pour rien, et qu'il y a une autre méthode bien plus optimisée (et peutetre plus simple)
 
vos avis ?
merci d'avance :)


Message édité par trevor le 18-12-2005 à 23:35:47

---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 18-12-2005 à 22:46:45   

Reply

Marsh Posté le 19-12-2005 à 00:38:00    

Salut,
 
t'aurais pas plus vite fait avec un wait/notify ??
comme ça ton thread ne boucle pas dans le vide...


---------------
Voir les RAW sous Android: https://market.android.com/details? [...] .RawVision Blog Photo: http://photouch.me Applications mobiles: http://caketuzz.com Wapcam Project: http://wapcam.mobi
Reply

Marsh Posté le 19-12-2005 à 10:01:31    

wapcamer a écrit :

Salut,
 
t'aurais pas plus vite fait avec un wait/notify ??
comme ça ton thread ne boucle pas dans le vide...


 
merde... j'suis trop c*n!
le pire c'est que je l'ai déjà utilisé pour autre chose dans mon code!! qué boulet
merci du tuyau soufflé à l'oreille ;)


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 19-12-2005 à 10:50:02    

ok, c'est nickel, ca marche bien. bon je sentais bien que c'était pas très propre (même si très fonctionnel).
je crois pas qu'on puisse faire "mieux", non ?


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 19-12-2005 à 11:58:46    

Mais non mais non, c'est pô grave, c'est le métier qui rentre... :sol:  
 
C'est souvednt le pb avec les trucs évidents, on les voit pas...
 
Bon bref, content d'avoir pu t'aider.  :hello:
 
PS: non je crois pas qu'on puisse faire mieux pq là ça me semble assez "propre" au niveau conception.


Message édité par wapcamer le 19-12-2005 à 12:00:06

---------------
Voir les RAW sous Android: https://market.android.com/details? [...] .RawVision Blog Photo: http://photouch.me Applications mobiles: http://caketuzz.com Wapcam Project: http://wapcam.mobi
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed