概述
#include <list>
#include <mutex>//互斥锁头文件
#include <thread>
#include <algorithm>
#include <iostream>
//此list被它下方的some_mutex保护
std::list<int> some_list;
std::mutex some_mutex;
void add_to_list(int new_value)
{
//使用此函数表明这些函数中的访问是互斥的list_contains将无法在add_to_list修改的半途中看到该列表
std::cout<<"add_to_list构造"<<std::endl;
std::lock_guard<std::mutex> guard(some_mutex);
some_list.push_back(new_value);
std::cout<<"add_to_list析构"<<std::endl;
}
bool list_contains(int value_to_find)
{
std::cout<<"开始查询"<<std::endl;
std::lock_guard<std::mutex> guard(some_mutex);
std::cout<<"查询结束"<<std::endl;
return std::find(some_list.begin(),some_list.end(),value_to_find) != some_list.end();
}
void add()
{
int i = 0;
while(1)
{
add_to_list(i);
i++;
}
}
int main()
{
std::thread t(add);
t.detach();
add_to_list(42);
std::cout<<"contains(42)="<<list_contains(42)<<", contains(42)="<<list_contains(42)<<std::endl;
return 0;
}
转载请注明出处:http://blog.csdn.net/clh01s/article/details/74784584
最后
以上就是干净火龙果为你收集整理的Linux 下 互斥锁的使用的全部内容,希望文章能够帮你解决Linux 下 互斥锁的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复