妈的,看了好久的相关的知识,感觉终于自己有点明白了,我一定要记下来啊,相关的知识呀。。。。

1, 也可以看一下boost的线程指南:http://wenku.baidu.com/link?url=E_zJLFJ7J6yqPC8lxYJQyimVdN8D234mVo3BHa_FIezQxfubGdHqkVfCv-b0Xia8bgzR2203QDLUKX_ic2AhHdjFTFxXAXqCCCkYJVidtLu

很全啦。

2.关于mutex与lock的一些介绍:

我用自己的话说就是:mutex是一个类,用它可以生成相应的互斥体,然后呢,我们就可以把互斥体加入到我们的线程中去啦。互斥体本身里有lock与unlock的实现, 不过是私有的,只能通过它的友元函数来调用,我们没有办法直接用。想一个简单方法:所以用lock模板类对它进行了封装,用lock模析类生成的对象相进行lock与unlock。对于mutex的使用,多个线程应该对应同一个mutex对象。

对于lock模板类来说,它把对对应类型(指的是muetx类的类型)lock与unlock操作放入到了它的构造与析构函数里了,这样可以自动完成它的使命了。

3, 关于boost::condition_variable的遇到的几点相关知识:

boost::condition_variable是用来进行多线程同步的。

我认为吧,对于notify_one和notify_all的作用就是:把一个线程对共享资源unlock(或着说,对于共享的数据操作)以后吧,还有其它线程在阻塞着呢,它俩的作用一个是通知一个线程(具体哪一个,应该有优先权吧,我猜),一个是通知所有的线程;

调用notify_one的时候,启用一个线程。

调用notify_all的时候,激活所有的线程。

对于 wait的作用:当本线程得到 了互斥体了,就本线程给它加锁了,然后在后续的相应操作过程中发现条件不满足,好吧,没办法,现在只能把锁加开了,让给别的进程啦,然后,把自己阻塞起来,等待notify(应该是由boost:condition_variable发出的notify的通知),当收到了以后呢,就加入互斥锁的队列啦,等着抢到对互斥体的lock,再继续相应的操作啦。

相关的文章可以看:

http://blog.csdn.net/gitar520/article/details/7694984

http://www.cnblogs.com/nzbbody/p/3388455.html

http://www.cnblogs.com/gelandesprung/p/4112529.html

http://www.cnblogs.com/vsuu/p/4170520.html

http://www.cnblogs.com/sanjin/archive/2012/08/09/2629890.html

我写的所以文章你们随便看,随便转·!!!,,,只要不用于盈利就好(盈利得有我的一份啊,哈哈哈)

关于boost的thread的mutex与lock的问题的更多相关文章

  1. boost库中thread多线程详解2——mutex与lock

    1. mutex对象类 mutex类主要有两种:独占式与共享式的互斥量.▲ 独占式互斥量:mutex: 独占式的互斥量,是最简单最常用的一种互斥量类型try_mutex: 它是mutex的同义词,为了 ...

  2. boost之thread

    1.boost里的thread创建之后会立即启动. 代码示例: #include <iostream> #include <string> #include <vecto ...

  3. 第29课 互斥量与自解锁(std::mutex和lock系列)

    一. 互斥量 (一)Mutex系列类 1. std::mutex:独占的互斥量,不能递归使用. 2. std::recursive_mutex:递归互斥量.允许同一线程多次获得该互斥锁,可以用来解决同 ...

  4. boost -- scoped_lock V.S. mutex lock/unlock —— why scoped_lock is recommanded?

    why scoped_lock is recommanded? 其实,这和RAII idiom变流行是一样的原因:因为你可以确保任何情况下离开执行范围都会解锁mutex. 注意,这不仅仅是说你可能忘记 ...

  5. Mutex 和 Lock

    #include <future> #include <mutex> #include <iostream> #include <string> #in ...

  6. C++11 并发之std::thread std::mutex

    https://www.cnblogs.com/whlook/p/6573659.html (https://www.cnblogs.com/lidabo/p/7852033.html) C++:线程 ...

  7. Mutex,Monitor,lock,MethodImplAttribute,SynchronizedAttribute的用法差异

    1)Mutex:进程之间的同步(互斥量). 2)lock/Monitor……:线程同步.其中lock是Monitor的简化版本(直接生成try{Monitor.Enter(……)}finally{Mo ...

  8. C++11 thread condition_variable mutex 综合使用

    #include <mutex> #include <condition_variable> #include <chrono> #include <thre ...

  9. 【C#】【Thread】Monitor和Lock

    所谓锁,就是之锁定的区域只能单个线程进入进行操作,其他线程在锁的外围等待.Monitor锁通过Monitor.Enter(obj)和Monitor.Exit(obj)来锁定和解锁.Lock锁则直接Lo ...

随机推荐

  1. Expanding Rods(二分POJ1905)

    Expanding Rods Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13688   Accepted: 3527 D ...

  2. 迷之节约 分类: sdutOJ 最小生成树 2015-06-24 19:10 10人阅读 评论(0) 收藏

    迷之节约 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 FF超级有钱,最近又买了n个(1 <= n <= 300)小岛,为 ...

  3. jQuery常用技巧-使用的总结

    1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...

  4. ubuntu APT-GET工作原理

    转 http://kurenai.elastos.org/2013/05/02/ubuntu-apt-get%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86/   先介绍几个和 ...

  5. js与C++交互及C++解析json

    转载:http://zhidao.baidu.com/link?url=LLuWzwMmpfVcQeSGv1CrAfRXpnZaetm9xypqwMW6zxLhhKES-rITAsG0-Ku-bSMA ...

  6. Android开发开始--环境搭建

    一.搭建Android开发环境 1.JDK (Java Development Kit) 2.Eclipse 3.Android SDK (Software Development Kit) 4.AD ...

  7. BZOJ 1565 植物大战僵尸(最大权闭合图)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1565 题意:植物大战僵尸,一个n*m的格子,每 个格子里有一个植物,每个植物有两个属性: ...

  8. iOS深入学习(UITableView系列2:reloadData)

    接着前一篇的博客来深入学习UITableView, UITableView的数据源是NSMutableArray的对象_infoArray,现在数组的内容为{@"Zero",@&q ...

  9. 【转载】前端面试“http全过程”将所有HTTP相关知识抛出来了...

    原文:前端面试“http全过程”将所有HTTP相关知识抛出来了... 来一篇串通,一个http全过程的问题,把所有HTTP相关知识点都带过一遍 http全过程 输入域名(url)-->DNS映射 ...

  10. 搭建本地的git仓库

    折腾了快一天了,终于搭建成功了. 分享一下搭建的步骤: 一.GIT仓库的创建 1. adduser git 2. passwd git 此例设置git的密码为123456 3. cd /home/gi ...