J'écris un programme pthread maintenant. D'après ce que j'ai expérimenté en C#, je pense qu'il pourrait y avoir une condition de concurrence dans la création d'un fil de discussion.Existe-t-il une condition de concurrence potentielle dans pthread_create()?
for (i = 0; i < 10; i++)
{
pthread_create(threads[i], NULL, &do_something, (void*)&data[i]);
}
Est-il possible que la variable locale i soit mise à jour avant la création du nouveau thread? Par conséquent, l'entrée de données ou de threads incorrecte dans les tableaux peut être transmise à la fonction do_something? Au moins en C# si j'utilise Task.Factory.StartNew(), c'est un gros problème.
Merci d'avance.
C'était ma conception initiale: passez directement. Puis j'ai réalisé le problème. Mais je n'étais pas sûr de la question que j'ai posée. Merci beaucoup. – LLS
Tant que les threads et les données (s'il est même utilisé) survivent aux threads eux-mêmes, tout va bien. – Flexo