Bonjour, j'ai un petit problème, J'ai deux threads qui fonctionnent suivant le modèle producteur/Consommateur. un thread qui attend sur un select, une fois qu'il recoit quelque chose, il la met dans une FIFO. et un autre thread qui lit à partir de la FIFO. Pour cela dans chacun des threads, j'utilise une boucle infinie de type while(true). Pour le premier thread qui fait la réception, j'ai pas de problème car le select est bloquant. Par contre pour le thread qui lit à partir de la FIFO, mon problème que le thread teste toujours la FIFO pour voir s'il y a de nouvelle données du coup mon utilisation CPU est toujours de 90%. J'ai essayé d'utiliser le pthread_cond_t pour régler ca en programmant en C++, mais j'arrive pas. Svp, y a t'il une autre façon de faire ca ?
Marsh Posté le 11-03-2008 à 17:24:41
Bonjour,
j'ai un petit problème,
J'ai deux threads qui fonctionnent suivant le modèle producteur/Consommateur. un thread qui attend sur un select, une fois qu'il recoit quelque chose, il la met dans une FIFO. et un autre thread qui lit à partir de la FIFO. Pour cela dans chacun des threads, j'utilise une boucle infinie de type while(true). Pour le premier thread qui fait la réception, j'ai pas de problème car le select est bloquant. Par contre pour le thread qui lit à partir de la FIFO, mon problème que le thread teste toujours la FIFO pour voir s'il y a de nouvelle données du coup mon utilisation CPU est toujours de 90%. J'ai essayé d'utiliser le pthread_cond_t pour régler ca en programmant en C++, mais j'arrive pas.
Svp, y a t'il une autre façon de faire ca ?
Merci bcp
Sara