pthread_join plusieurs threads en attente

À l'aide de threads POSIX & C++, j'ai une "opération d'Insertion" qui ne peut être fait en toute sécurité à la fois.

Si j'ai plusieurs threads en attente d'insertion à l'aide pthread_join puis lançant un nouveau thread
lorsqu'elle se termine. Seront-ils tous de recevoir le "thread complet" du signal à la fois et d'engendrer de multiples insertions ou est-il sûr de supposer que le thread qui reçoit le "thread complet" premier signal générer un nouveau thread bloquant les autres de créer de nouvelles discussions.

/* --- GLOBAL --- */
pthread_t insertThread;



/* --- DIFFERENT THREADS --- */
//Wait for Current insert to finish
pthread_join(insertThread, NULL); 

//Done start a new one
pthread_create(&insertThread, NULL, Insert, Data);

Merci pour les réponses

Le programme est en fait une immense table de hachage qui prend des demandes de clients par le biais de Supports.

Chaque nouvelle connexion du client engendre un nouveau fil à partir de laquelle il peut effectuer plusieurs opérations, plus précisément des recherches ou des inserts. les recherches peuvent être menées en parallèle. Mais les inserts doivent être "re-combinés dans un seul thread. On pourrait dire que les opérations de recherche qui pourrait être fait sans frai un nouveau thread pour le client, mais ils peuvent prendre un tout en provoquant le serveur de verrouiller, de déposer de nouvelles demandes. La conception essaie de minimiser les appels système et de création de thread autant que possible.

Mais maintenant que je sais qu'il n'est pas sûr de la façon dont j'ai d'abord pensé que je devrais être en mesure de bricoler quelque chose ensemble

Grâce

InformationsquelleAutor zootreeves | 2009-01-10