problèmes de Threads .

problèmes de Threads . - Python - Programmation

Marsh Posté le 16-06-2004 à 20:02:45    

Bon salut je débutes avec les Threads et là le problème c' est que j' ai aucune erreur mais mon cpu tourne à 100%
 
je vous explique:
 

Code :
  1. from threading import Thread
  2. import Q


 
classe A:

Code :
  1. class A:
  2.      def __init__(self):
  3.          self.Q      = Q.My_Queue()
  4.          self.Q.Threaddy_kruger()


 
classe My_Queue  :o  

Code :
  1. class My_Queue:
  2.      def __init__(self):
  3.          self.stock= []
  4.    
  5.      def Threaddy_kruger(self):
  6.          t2 = Thread(target = self.Loop)
  7.          t2.start()
  8.      def Loop(self):
  9.          while 1:
  10.             if self.Qsize() > 0:
  11.                 item = self.Qpopd()
  12.      def Qsize(self):
  13.         return len(self.stock)
  14.      
  15.      def Qpopd(self):
  16.         return self.stock.pop(0)

 
 
par contre lorsque je fais un thread ds la classe A avec une boucle du meme style j ' ai pas de problems.
si quelqu un à une idée  :jap:


Message édité par Profil supprimé le 16-06-2004 à 20:04:45
Reply

Marsh Posté le 16-06-2004 à 20:02:45   

Reply

Marsh Posté le 16-06-2004 à 20:06:04    

while 1:
              if self.Qsize() > 0:
                    item = self.Qpopd()  
 
 
sans déconner ? tu fait de l'attente active, tu t'attend à quoi ?
 
utilise les Queue de Python et jète un oeil à tout ce qui est synchronisation (Lock, Event, Condition, etc)
 
et ton programme n'est pas sur, dans un contexte multi-thread, ça va foirer


Message édité par Taz le 16-06-2004 à 20:06:49
Reply

Marsh Posté le 16-06-2004 à 20:11:05    

il est si choquant que ça mon code  [:joce]  
bon je vais regardé de plus près ce que tu me conseilles merci

Reply

Marsh Posté le 16-06-2004 à 20:13:51    

oui : tu n'as aucune notion de programmation parallèle. alors commence par lire en long et en large toute la documentation des modules thread, threading et queue avant de tenter de foirer la réinvention de la roue

Reply

Marsh Posté le 17-06-2004 à 10:10:39    

Comment tu l'as cassé :o

Reply

Sujets relatifs:

Leave a Replay

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