第一步:添加头文件
#include <boost/thread/shared_mutex.hpp>
#include <boost/thread/locks.hpp>
第二步:声明全局Mutex
boost::shared_mutex g_mutex;
第三步:使用独占锁
void func()
{
boost::unique_lock<boost::shared_mutex> lock(g_mutex); //实例化时,顺便Lock
//通过修改“实例化”时的参数,你也可以显示Lock。
...这里省略若干行代码...
}
第三步:使用共享锁
void func()
{
boost::shared_lock<boost::shared_mutex> lock(g_mutex);
...这里省略若干行代码...
}
备注:
[1]你可以在Lock对象构造时,使用boost::defer_lock类参数。
显示调用lock、Unlock、try_lock、timed_lock等成员函数,来更灵活的Lock。
[2]缺省使用,则在出函数作用域时,自动Unlock。这里的例子就是采用这种方式。
本文详细介绍了在C++中使用boost库进行并发编程的方法,包括如何声明全局Mutex,实现独占锁和共享锁,并展示了如何灵活地使用lock、Unlock、try_lock和timed_lock等成员函数。
278

被折叠的 条评论
为什么被折叠?



