C++ 读锁和写锁

读锁

所用到的数据结构是读写锁,初始化之后,即可以当读锁,又可以当写锁。

# include<iostream>
# include<thread>

using namespace std;
pthread_rwlock_t flock=PTHREAD_RWLOCK_INITIALIZER;//初始化
void hello(char c)
{

    for(int i=0;i<5;i++) {
        pthread_rwlock_rdlock(&flock);//上读锁
        cout << c << " " << i << endl;
        pthread_rwlock_unlock(&flock);//解锁
    }
}
int main()
{
    thread t0 (hello,'a');
    thread t1 (hello,'b');
    t0.join();
    t1.join();
}

结果如下

ab  00

ab  11

ab  22

ab  33

ab  44

写锁

# include<iostream>
# include<thread>

using namespace std;
pthread_rwlock_t flock=PTHREAD_RWLOCK_INITIALIZER;//初始化
void hello(char c)
{

    for(int i=0;i<5;i++) {
        pthread_rwlock_wrlock(&flock);//上写锁
        cout << c << " " << i << endl;
        pthread_rwlock_unlock(&flock);//解锁
    }
}
int main()
{
    thread t0 (hello,'a');
    thread t1 (hello,'b');
    t0.join();
    t1.join();
}

结果如下

a 0
a 1
a 2
a 3
a 4
b 0
b 1
b 2
b 3
b 4
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这个月的节日真多。 先是教师节,当时兴致勃勃想写一组小文纪念下老师们,也许二三十,也许四五十,总之有的是故事,当然...
    山谷和百合阅读 243评论 0 0
  • [TOC] 解释器模式 解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的方案,给定...
    0x70e8阅读 447评论 0 1
  • 【春节前嘉陵江畔看“缤纷水岸”】 12日,记者在清溪河入江口下游看到, 位于防洪堤下方的江滩湿地上,场平工作基本完...
    自由拍客V阅读 176评论 0 3