美文网首页
C++ 读锁和写锁

C++ 读锁和写锁

作者: 栗子_978b | 来源:发表于2018-11-18 18:38 被阅读0次

读锁

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

# 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

相关文章

  • C++ 读锁和写锁

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

  • Java并发-17.读写锁

    读写锁维护一对锁,读锁和写锁 分离读锁和写锁,并发性比排它锁有很大提升 ReadWriteLock仅定义读锁和写锁...

  • 18 StampedLock

    StampedLock支持三种模式:写锁、悲观读锁、乐观读 写锁和悲观读锁与ReadWriteLock的写锁、读锁...

  • MySQL并发控制(锁,事务)

    并发控制 锁 读写锁读锁也叫共享锁,共享,互不干扰。写锁也叫排它锁,写锁会阻塞其他写锁和读锁。 锁粒度锁的粒度越小...

  • 锁的概念

    读写锁 读锁:共享锁,写锁:排他锁 一个写锁会阻塞其他的写锁和读锁 锁粒度: 不同的引擎支持不同的锁机制 行锁(I...

  • 可重入读写锁 ReentrantReadWriteLock

    读写锁分为读锁和写锁,多个线程获取读锁不互斥,读写锁、写写锁互斥。 输出

  • ReentrantReadWriteLock源码解析(1)try

    读写锁概念:写锁排他,读锁共享。 tryReadLock: 上面可以看到除了和写锁互斥以外,读锁之间并不互斥。所以...

  • Mysql中锁的类型有哪些呢?

    mysql锁分为共享锁和排他锁,也叫做读锁和写锁。 读锁是共享的,可以通过lock in share mode实现...

  • redis锁分享

    共享锁(读锁) LOCK IN SHARE MODE 排他锁(写锁,独占锁,互斥锁)FOR UPDATE 乐观锁和...

  • mysql锁

    1,读写锁 读锁是共享锁,所有读操作都可以获取,写锁是拍他锁,可以阻塞其他读和写操作 2,锁粒度 表级别的...

网友评论

      本文标题:C++ 读锁和写锁

      本文链接:https://www.haomeiwen.com/subject/cvigfqtx.html