boost::unique_lock需要怎么使用,举个例子C++
时间: 2024-05-29 09:08:52 浏览: 222
++11中,boost::unique_lock 是一个用于管理互斥锁的 RAII 类,它的使用方式与 std::unique_lock 非常类似。下面是一个使用 boost::unique_lock 的示例代码:
#include <boost/thread.hpp>
#include <iostream>
boost::mutex mutex;
void thread_func()
{
boost::unique_lock<boost::mutex> lock(mutex);
std::cout << "Hello, world from thread " << boost::this_thread::get_id() << std::endl;
}
int main()
{
boost::thread t1(thread_func);
boost::thread t2(thread_func);
t1.join();
t2.join();
return 0;
}
在上面的代码中,我们定义了一个互斥锁 mutex 和一个线程函数 thread_func。在线程函数中,我们使用 boost::unique_lock 对 mutex 进行了加锁,这样可以保证在整个 lock 对象的生命周期内,mutex 一直被锁住,直到 lock 对象被销毁时才会解锁。
在主函数中,我们创建了两个线程 t1 和 t2,分别执行 thread_func 函数,并等待它们执行完毕后才退出。这样,我们就可以在多线程环境下安全地访问共享资源了。
阅读全文