[RESOLU] Probleme synchro thread

Probleme synchro thread [RESOLU] - Java - Programmation

Marsh Posté le 07-01-2009 à 17:31:03    

Bonjour,
 
Je voudrais sa voir si quelqu'un pouvais me dire d'où viens l'erreur suivante svp ?
 
Exception in thread "Thread-2" java.util.ConcurrentModificationException
 at java.util.LinkedList$ListItr.checkForComodification(Unknown Source)
 at java.util.LinkedList$ListItr.next(Unknown Source)
 at Distrib.Distributeur.run(Distributeur.java:105)

 
Voila le code en question:
 

Code :
  1. public void run()
  2. {
  3.  while(true)
  4.  {
  5.   if(!this.etat.getType().equals("occupe" ))
  6.   {
  7.    System.out.println("Mise à jour des comptes effectués du distributeur " + numero);
  8.    // Mise à jour de l'état des cartes bancaires invalide
  9.    liste_cb_invalides.clear();
  10.    // Recuperer la liste des carte bancaires de tous les comptes
  11.    for(CompteClient.Client c: banque.getListeClient())    ----> Erreur à ce niveau ligne 105 comme le dit le message
  12.    {
  13.     for(CompteClient.Compte cpt: c.getListeCompte())
  14.     {
  15.         if(cpt.getCb().getEtat().equals("invalide" ))
  16.         {
  17.          liste_cb_invalides.add(cpt.getCb());
  18.         }
  19.     }
  20.    }
  21.    try {
  22.     this.sleep(5000+numero);
  23.    } catch (InterruptedException e) {e.printStackTrace();}
  24.   }
  25.  }
  26. }


 
Merci d'avance pour votre aide.


Message édité par lezert le 08-01-2009 à 22:07:57
Reply

Marsh Posté le 07-01-2009 à 17:31:03   

Reply

Marsh Posté le 07-01-2009 à 17:43:30    

On a pas assez d'infos sur ton code, mais d'après la stack trace, y a un problème d'accès concurrent [:petrus75] Donc t'essaies de lire dans ta liste alors que celle-ci est déjà utilisée ailleurs par un autre thread.
Renseigne-toi sur le multi-threading, notamment sur les problèmes de synchronisation.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 07-01-2009 à 18:26:20    

Taiche a écrit :

t'essaies de lire dans ta liste alors que celle-ci est déjà utilisée ailleurs par un autre thread.


Modifiée, surtout :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-01-2009 à 22:07:07    

Merci pour votre aide.
Après quelques longues recherches sur internet, j'ai trouvé la solution Il m'a suffit d'utilisé le mot clé synchronisez sur ma fonction getClient !!!
Encore Merci

Reply

Sujets relatifs:

Leave a Replay

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