2010-09-30 6 views
0

Comment créez-vous un slim intrusif (boost) qui est threadsafe afin que plusieurs threads puissent supprimer des éléments ou ajouter des éléments?Liste intrusive threadsafe - meilleure façon

Je voudrais un verrouillage à grain assez fin; donc je ne peux verrouiller que les noeuds nécessaires et pas toute la liste à chaque fois. Est-ce que je viens d'écrire une classe wrapper autour de la slogan boost ou est-il préférable de simplement l'implémenter moi-même?

+0

verrouillage à grains fins est au coût de plus de verrous acquis et libérés. Êtes-vous sûr que votre code bénéficierait vraiment du verrouillage/déverrouillage de chaque nœud séparément? – blaze

+0

@blaze: Le problème est que la liste devra être accessible à 4-5 threads et je ne veux pas que le tout soit verrouillé à chaque fois que j'ai besoin d'ajouter ou de supprimer un nœud .... Est-ce le surdébit de verrouillage nœuds individuels plus élevés par rapport au temps qu'un thread pourrait finir par attendre un (des) autre (s) fil (s)? –

+0

Cela dépend de votre application. Le verrouillage de noeuds individuels peut être considéré comme une micro-optimisation préférable de définir les performances de votre application avec un verrouillage global. D'un autre côté, certaines applications comme les systèmes de base de données en mémoire à haut débit bénéficieraient du verrouillage au niveau des lignes dès le départ. –

Répondre

Questions connexes