Bonjour,
j'ai plusieurs thread au sein d'un même programme qui effectuent des tâches totalement différentes les unes des autres. Les thread sont asynchrones entre eux, c-à-d qu'on ne peut pas prévoir (sauf avertir via les signaux) quand un thread va rendre le résultat de son exécution à un autre thread pour que lui même effectue un travail dessus.
Etant donné que l'exécution de mes thread est asynchrone, j'utilise les signaux pour envoyer les informations entre les thread (pointeurs d'objets) et je fais appel à start() afin de relancer la méthode run() du thread adéquat qui contient l'algorithme de traitement (qui ne boucle pas indéfiniment jusqu'à une demande de terminaison de thread ou jusqu'à une certaine condition).
Donc pour l'instant mes threads (pas tous) s'exécutent, renvoient les résultats via les signaux, meurent, et son relancés par la méthode start(), autant de fois qu'un traitement est à effectuer.
Vu que je n'ai pas besoin de mutex, parce que je n'ai pas d'accès concurrent à une même donnée, je n'ai pas l'utilité de QWaitCondition qui demande un QMutex.
Comment puis-je réveiller ou mettre en attente les thread jusqu'à ce qu'il reçoivent l'ordre de s'exécuter ?
J'essaye aussi d'éviter qu'un thread prenne du temps CPU pour rien, ou quoi que ce soit d'autre qui serait du temps perdu, parce que la machine sur laquelle s'exécutera le programme est doté d'un P4 1Go RAM DDR2 --'.
Merci à tous !

 

 
		
		 
         
 

 
			
			

 
   


 QWaitCondition sans QMutex ?
 QWaitCondition sans QMutex ?
				 Répondre avec citation
  Répondre avec citation


 
  
  
 
 
			 
  
						 Envoyé par alexgille
 Envoyé par alexgille
					

Partager