2010-11-18 34 views
2

Je passe de xlobjects à boost :: signals2 comme ma structure de signal/slot dans l'espoir que l'établissement de connexions, leur suppression, l'émission de signaux, etc. Je ne suis pas du tout intéressé par l'émission de signaux inter-thread. La question simple est: est-ce que boost :: signals2 thread safe de la façon dont, par exemple, deux threads ou plus peuvent établir une connexion sur le même signal?Performance de boost :: signals2

De plus, boost :: signals2 est-il pénalisé par les performances par rapport aux xlobjects? Ce n'est pas important car l'application ne dépend pas beaucoup des signaux/slots, mais j'aimerais quand même savoir.

Répondre

2

Je crois que toutes les réponses dont vous avez besoin concernant la sécurité des threads dans boost.signal sont dans the documentation (réponse courte: oui, boost: signaux2 est thread-safe). En ce qui concerne la performance, je suppose que la sécurité des threads a un coût, mais il n'y a qu'une seule façon d'être sûr: benchmark!

3

Les signaux d'amplification 2 sont sécurisés.

Mais si, pour une raison ou une autre, vous avez besoin de performances supplémentaires et que vous pouvez garantir l'accès à un seul thread, il y a un mutex factice dans la bibliothèque signals2 beaucoup plus rapide qu'un vrai mutex.