Envoi de parametre dans un thread en C++

xinob Messages postés 7 Date d'inscription lundi 30 octobre 2006 Statut Membre Dernière intervention 6 février 2022 - 1 mai 2009 à 20:57
marcoantoine Messages postés 1 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 6 juillet 2009 - 6 juil. 2009 à 15:40
Bonjour a tous,

Je me permets de poster un message car je n’ai pas trouver de réponse que j’ai comprise sur le net .
En effet , j ai quelques questions concertant l’envoi de paramètre pour les threads en C++ :

Dans le main.cpp :

void main()
{
    pthread_t thread;
    int toto=3 ;
    pthread_create (&thread, NULL, fonction ,NULL) ;
}

Pourriez vous modifier pthread_create (&thread, NULL, fonction ,NULL) ;pour qu’elle envoi toto en paramètre ?

Dans la fonction.h:
void* client(void* );
Pourriez vous modifier ceci pour  pour que la fonction puisse bien envoyer toto  ?

Dans le fonction.cpp :
void* client( void*)
Pourriez vous modifier ceci pour  pour que la fonction puisse bien recevoir toto  ?

Merci beaucoup !

2 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
3 mai 2009 à 18:35
le dernier argument de pthread_create() est un pointeur (optionnel) sur les données à passer en paramètre.
0
marcoantoine Messages postés 1 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 6 juillet 2009
6 juil. 2009 à 15:40
tout a fait du coup pour ecrire ta fonction du doit mettre:
pthread_create (&thread, NULL, fonction, (void *) toto);

le cast en (void *) est obligatoire, et tu devra recaster en inverse dans ta fonction threadée.
ce qui te donne pour la fonction d'appel:
void* fonction(void * titi)
{
    int variable = (int) titi;
}

et tu peut faire exactement pareil dans la fonction client
0
Rejoignez-nous