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

  FORUM HardWare.fr
  Programmation
  Java

  problème de threads

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de threads

n°1076146
chaica
Posté le 09-05-2005 à 12:18:36  profilanswer
 

Bonjour j'ai un problème de threads. Voici mon code:
 
Ceci est mon chronometre:

Code :
  1. import java.lang.Thread ;
  2. public class Chronometre extends Thread {
  3. private int secondes = 0 ;
  4. private long attente = 1000 ;
  5. public Chronometre ( ) {
  6. }
  7. public void run ( ) {
  8.  try {
  9.   while ( true ) {
  10.    secondes++ ;
  11.    if ( interrupted ( ) ){
  12.     System.out.println ( "on m a arrete" ) ;
  13.     return ;
  14.    }
  15.    System.out.println( secondes ) ;
  16.    sleep ( attente ) ;
  17.   }
  18.  } catch ( InterruptedException e ) {
  19.   System.out.println ( "on m a arrete par exception" ) ;
  20.   return ;
  21.  }
  22. }
  23. }


 
j'ai une classe jeu avec une méthode lanceChrono ( boolean ) :

Code :
  1. public void lanceChrono ( boolean test ) {
  2.  if ( test ){
  3.  Chronometre chrono = new Chronometre ( ) ;
  4.  chrono.start ( ) ;
  5.  }
  6.  else {
  7.   chrono.interrupt ( ) ;
  8.   }
  9. }


 
La thread se lance bien mais j'ai une NullPointerException quand je ré-appelle la méthode lanceChrono pour interrompre. La NPE est sur:

Code :
  1. chrono.interrupt ( ) ;


 
pourtant chrono est bien déclaré globale à la classe. Je ne comprends pas pourquoi il disparaît

Code :
  1. public class Jeu {
  2. private Chronometre chrono ;
  3. ...


---------------
Du taf dans le Logiciel Libre : https://www.linuxjobs.fr
mood
Publicité
Posté le 09-05-2005 à 12:18:36  profilanswer
 

n°1076149
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-05-2005 à 12:20:36  profilanswer
 

normal, la création de ton objet chrono est conditionnelle, donc si il ne se créé pas, il n'existe pas quand tu passes dans ton else !
vire l'instanciation de chrono du if

n°1076158
chaica
Posté le 09-05-2005 à 12:25:25  profilanswer
 

Je viens de voir que je redéclarais en local chronometre avec Chronometre chron = new Chronometre alors que ça devrait être chrono = new Chronometre;
 
C'est la 2nd fois que ça m'arrive ça fait une heure de perdue pfff.
merci en tout cas


---------------
Du taf dans le Logiciel Libre : https://www.linuxjobs.fr
n°1076161
verdoux
And I'm still waiting
Posté le 09-05-2005 à 12:26:58  profilanswer
 

Fuat pas écouter Harko, il connaît que le C++ managé et l'ASM :o

n°1076191
nraynaud
lol
Posté le 09-05-2005 à 12:46:06  profilanswer
 

sinon, y'a la classe java.util.Timer qui est bien ...


---------------
trainoo.com, c'est fini
n°1076193
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-05-2005 à 12:48:40  profilanswer
 

verdoux a écrit :

Fuat pas écouter Harko, il connaît que le C++ managé et l'ASM :o


en même temps, j'ai lu son code en biais, j'ai juste vu un objet créé dans un bloc if/else, donc dés l'instant ou un objet est créé de façon conditionnelle, faut éventuellement s'attendre à une NullPointerException hein [:joce]


---------------
J'ai un string dans l'array (Paris Hilton)

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

  problème de threads

 

Sujets relatifs
[c++] template -> sujet d'examen 2004 (problème de compréhension)Problème phpBB avec les logos nouveau message, forum verrouillé...
Winsock et Threads (Boost) : Problèmeproblème avec les threads
[c++] probleme avec le mot clé static et les threads sous windowsproblème avec les threads (associés aux sockets) sous windows
problème avec des threads sous vb.net[thread/linux/c++/kdevelop3.1] Problème avec les threads
[PERL] Problême de data sharing entre plusieurs threads...[JAVA] Probleme bizarre avec des threads
Plus de sujets relatifs à : problème de threads


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