Bonjour, j'ai un prgm dont je peux paralléliser une partie du code en utilisant les threads. Voici en gros sa structure :
Une fois que tous ces threads ont été exécutés, je dois faire l'opération suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for(i=0;i<N;++i) pthread_create(&task[i], NULL, Integration, &integ[i]);
où les vecteurs y[0],...,y[N-1] ont été calculés dans les threads (ils font partie de la structure integ[i], i=0...N-1). Les threads ne partagent aucune donnée donc je n'ai pas mis de mutex.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 z=f(y)
Ma question est la suivante : pour m'assurer que tous les threads sont bien terminés que dois-je faire :
1) utiliser la fonction pthread_join (task[i], NULL) après la boucle for ou
2) utiliser des threads avec condition où la condition serait "si tous les threads sont terminés faire le calcul z=f(y)" ?
Merci.
Partager