J'ai le code de Windows suivant qui génère deux threads attend alors jusqu'à ce qu'ils aient tous deux achevés:Y at-il un équivalent pthread WatiForMultipleObjects
hThreads[0] = _beginthread(&do_a, 0, p_args_a);
hThreads[1] = _beginthread(&do_b, 0, p_args_b);
WaitForMultipleObjects(2, hThreads, TRUE, INFINITE);
Je PORTAGE maintenant le même code à utiliser pthreads mais je suis pas sûr comment faire l'équivalent de WaitForMultipleObjects
:
pthread_create(&hThreads[0], 0, &do_a, p_args_a);
pthread_create(&hThreads[1], 0, &do_b, p_args_b);
???
est-il un moyen équivalent, en utilisant pthreads, pour obtenir les mêmes fonctionnalités?
Ai-je besoin d'appeler pthread_exit dans do_a et do_b? –
Quelques lectures supplémentaires ... pthread_exit n'est vraiment nécessaire que pour renvoyer des informations à l'appel pthread_join en attente de la sortie du thread? –
Désolé, je viens de voir votre commentaire. Non, vous n'avez pas besoin d'appeler 'pthread_exit' sauf si c'est plus pratique. C'est analogue à l'appel 'exit' de' main'. Vous pouvez le faire si vous le souhaitez, mais vous pouvez aussi revenir normalement, et l'effet sera comme si vous appeliez 'pthread_exit' avec la valeur de retour de la fonction thread. Je n'appelle presque jamais 'pthread_exit'. Je n'utilise presque jamais non plus la valeur de retour (d'où la raison pour laquelle je passe NULL comme deuxième argument à 'pthread_join'). –