Salut à tous,
Je suis en train de plancher sur la bibliothèque de gestion de threads de Boost, et j'ai une question à laquelle je ne parviens pas à répondre :
Quelle est l'utilité des classes lock_guard, unique_lock, upgrade_lock et compagnie ?
De ce j'ai compris, il suffit d'instantier un boost::mutex, boost::timed_mutex, boost::shared_mutex, etc. en fonction de ses besoin et de faire appel à lock() et unlock() (ou lock_shared(), etc.). Ca marche très bien comme ça, j'ai essayé avec des centaines de threads en même temps sur plusieurs ressources partagées, et les concepts de propriété exclusive, partagée, upgradable, etc. sont toujours respectés.
Donc du coup, je comprends pas pourquoi on irait s'embêter à instantier un objet boost::lock_guard ou autre pour locker ces mutexs, je vois pas ce que cela apporte en plus.
Est-ce que j'aurais loupé quelque chose ?
Merci ^^
Partager