Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
696 connectés 

  FORUM HardWare.fr
  Programmation
  Java

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

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1269636
trevor
laissez la vie vous étonner...
Posté le 18-12-2005 à 22:46:45  profilanswer
 

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
mood
Publicité
Posté le 18-12-2005 à 22:46:45  profilanswer
 

n°1269657
wapcamer
Posté le 19-12-2005 à 00:38:00  profilanswer
 

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
n°1269733
trevor
laissez la vie vous étonner...
Posté le 19-12-2005 à 10:01:31  profilanswer
 

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
n°1269764
trevor
laissez la vie vous étonner...
Posté le 19-12-2005 à 10:50:02  profilanswer
 

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
n°1269822
wapcamer
Posté le 19-12-2005 à 11:58:46  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

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

 

Sujets relatifs
koi installé j2se ? pb de java sous firefox suite à l'install de j2se[Java] synchro entre thread: wait() et notify() -> pb [RESOLU]
Boutique virtuelle en java en utilisant Struts[Java] maj du défilement d'un jtextarea utilisé par 2 classes
Upload en JAVA[Python][WIP] Fractales Markus-Lyapunov (Avis et conseils demandés)
Pb java scrip Help !!!Java 1.5 & Eclipse 3.1.1
visual editor javaFermer une fenetre JAVA pour en ouvrir une autre
Plus de sujets relatifs à : [Java] avis sur ce procédé de remplacement de suspend() / resume()


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR