我是靠谱客的博主 坚强凉面,最近开发中收集的这篇文章主要介绍boost::mutex::scoped_lock,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        在三维重建过程中,世界地图 Map &world作为唯一 访问/更新 对象,可以使用boost::mutex::scoped_lock 。


一:boost::mutex::scoped_lock

        使用boost进行线程管理简单使用boost::mutex 。

        mutex对象本身并不知道它代表什么,它仅仅是被多个消费者线程使用的资源访问的锁定解锁标志。在某个时刻,只有一个线程可以锁定这个mutex对象,这就阻止了同一时刻有多个线程并发访问共享资源。一个mutex就是一个简单的信号机制。

        给mutex加解锁有多种策略,最简单的是使用scoped_lock类,它使用一个mutex参数来构造,并一直锁定这个mutex直到对象被销毁。如果这个正在被构造的mutex已经被别的线程锁定的话,当前线程就会进入wait状态,直到这个锁被解开。


稍微详细的一点介绍参考:Boost锁~临界区保护和临界资源共享

        mutex锁不分读写,作为智能锁是需要一定的使用代价的。


一种具体实现参考:mutex、condition、scope_lock的简单实现


二、读写锁的使用:

       参考:Boost线程库学习笔记 

       文章给出了详细的读写锁 boost::read_write_mutex的使用方法,省去了自己再写解死锁方法的劳动。并且对一些经典锁死现象进行了代码级分析和解决方案提出,课件作者付出了大量的劳动。



转载于:https://www.cnblogs.com/wishchin/p/9199990.html

最后

以上就是坚强凉面为你收集整理的boost::mutex::scoped_lock的全部内容,希望文章能够帮你解决boost::mutex::scoped_lock所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部