Gérer les threads / Mutex
Bonjour ,
J'essaie de développer une appli client-serveur , mais je rencontre quelques soucis pour gérer tout cela et faire ce que je veux .
Je vous résume le truc :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| void * threadenvoi(void * arg) /* Thread s'occupant de l'envoi */
{
/* Tant que le message envoyé n'est pas égal à fin */
{
// On lit le message
}
/* ................. */
pthread_exit (EXIT_SUCCESS)
}
void * threadrecevoir(void * arg) /* Thread s'occupant de la reception */
{
/* Tant que le message envoyé n'est pas égal à fin */
{
cout << " resultat " << endl;
cout << message_qui_a_ete_recu << endl;
}
/* ....................... */
pthread_exit (EXIT_SUCCESS);
}
void * threadrecevoirerreur(void * arg)
{
while(....)
{
/* On recoit le message erreur */
}
/* ............................... */
pthread_exit (EXIT_SUCCESS);
}
pthread_create(&envoyer, NULL, threadenvoi,(void*)NULL);
pthread_create(&recevoir, NULL, threadrecevoir,(void*)NULL);
pthread_create(&recevoirErr,NULL,threadrecevoirerreur,(void*)NULL);
pthread_join(recevoirErr,NULL); |
Le truc , c'est qu'on a 3 threads en boucle infini , et que il y a 3 étapes :
Lecture du message
Reception du message
Reception du message erreur
Sauf que niveau resultat , la lecture est ok , mais du fait des threads , le message d'erreur arrive des fois avant le message lui même et vice versa .
Du coup , je me demandais comment faire pour qu'il y ait cet ordre précis :
Lecture du message
Reception du message
Reception du message erreur
J'espère que vous saurez m'aider ..