thread

thread - C++ - Programmation

Marsh Posté le 27-08-2002 à 15:34:01    

salut,
 
j'ai plusieurs thread lancés par une appli.
 
chaque thread effectue un traitement et possede une boucle d'attente.
 
ma question est comment faire pour que ma boucle d'attente
ne prenne pas trops de ressources processeurs ?
 
faut il mettre un Sleep(...) ?
 
merci
 
chtipoune

Reply

Marsh Posté le 27-08-2002 à 15:34:01   

Reply

Marsh Posté le 27-08-2002 à 15:52:23    

Faut l'enlever :D


---------------
Horizon pas Net, reste à la buvette!!
Reply

Marsh Posté le 27-08-2002 à 15:55:32    

le pb c'est que au bout de dix thread la becane rame et je pense  
 
que la boucle while(loop){.....} multipliée par n thread bouffe trop de ressource processeur
 
chipoune

Reply

Marsh Posté le 27-08-2002 à 16:23:01    

Bof, oui un Sleep(...) peut bien faire l'affaire !

Reply

Marsh Posté le 27-08-2002 à 17:24:07    

Sous quoi Win32 ou Unix/Linux ?

Reply

Marsh Posté le 27-08-2002 à 17:26:33    

Quel est ton critère de sortie d'attente ?
 
tu as un thread principal qui Suspend/Resume les autres ?

Reply

Marsh Posté le 27-08-2002 à 17:33:32    

salut bjone comment vas tu ?
 
en fait mon thread attend des données en porvenance d'un socket.
 
pour sa sortie, je détecte si le client est deconnecté et si c'est le cas le message je recois le message onclose.
 
ensuite je ferme la socket puis je sors de la boucle du thread.
 
Patrick[FCIL]  

Reply

Marsh Posté le 27-08-2002 à 17:35:59    

ps en utilisant un sleep de 50 ms ca tourne, le cpu n'est plus occupé a fond et j'ai pu effectué le test en lancant 200 connection client simultannée soit 200 threads.
 
chtipoune

Reply

Marsh Posté le 27-08-2002 à 18:39:19    

salut il me semblait bien que c'était toa ;)
 
alors pour moa, je vais ptet dire des conneries:
 
Mais c'est bien le thread de ton process de l'appli qui balaye les messages non ?
 
donc pour moi je ferais plustôt un SuspendThread() dans le Thread qui s'occupe du client, et dans le Thread principal qui balaye la queue des messages je feraias un ResumeThread du Thread lié au client au moment ou tu reçois le message...
 
enfin un truc du genre....
 
enfin je trouves le sleep un peu bourrin....
je préféres faire une approche par Suspend/Resume ça me parait plus clean... après fo voar les détails...


Message édité par bjone le 27-08-2002 à 18:40:42
Reply

Sujets relatifs:

Leave a Replay

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