线程自动加锁与自动解锁:lock_guard & unique_lock

来源:互联网 发布:wps表格数据计算公式 编辑:程序博客网 时间:2024/05/22 03:46
#define N 1000000mutex g_mutex;void add(int *p){for (int i = 0; i < N; i++){unique_lock<mutex>ulk(g_mutex);//OK   unique_lock 加锁,没有mutex所有的权限(根据mutex的属性来判断是否能够加锁, 自动加锁自动解锁)    时间上比lock_guard 慢
//根据块语句的循环 来锁定    读取失败就一直等待//lock_guard < mutex >lgd(g_mutex) ;//OK    锁定的向导   拥有mutex所有的权限  自动加锁自动解锁(浪费时间)   一旦读取失败,就一直等待(*p)++;}}void main(){int a = 0;thread t1(add, &a);thread t2(add, &a);t1.join();t2.join();cout << a << endl;cin.get();}

0 0
原创粉丝点击