37 votes

boost :: lock_guard vs boost :: mutex :: scoped_lock

Qui est privilégié boost::lock_guard ou boost::mutex::scoped_lock?

Je suis d'utilisation de Boost.Fil avec l'espoir de passer à C++11 filetage lorsqu'il devient disponible.

Est - scoped_lock le cadre de la prochaine norme c++?

Sont les avantages de préférer l'un sur l'autre?


NOTE: je suis conscient qu' scoped_lock est juste un typedef de lock_guard.


edit: j'ai eu tort scoped_lock est pas un typedef de lock_guard. C'est un typedef de unique_lock.

29voto

Anthony Williams Points 28904

Amit a raison: boost::mutex::scoped_lock est un typedef pour boost::unique_lock<boost::mutex> , pas lock_guard . scoped_lock n'est pas disponible en C ++ 0x.

À moins que vous n'ayez besoin de la flexibilité de unique_lock , j'utiliserais lock_guard . Il est plus simple et exprime plus clairement l’intention de limiter le verrouillage à une portée définie.

27voto

phaedrus Points 8060

Pas beaucoup de différence entre les deux. Selon Boost , scoped_lock est un typedef pour unique_lock<mutex> . Les deux unique_lock et lock_guard implémentent le verrouillage de style RAII. La différence entre les deux est simplement que unique_lock a une interface plus complexe - elle permet de différer le verrouillage et le déverrouillage des appels.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X