美文网首页
读写锁CSpinRwLock

读写锁CSpinRwLock

作者: 星夜兼程工作笔记 | 来源:发表于2020-04-10 11:02 被阅读0次

写者模型与生产者消费者模型大致一样,也满足3,2,1规则。

3种关系:读者与读者(没有关系),写者与写者(竞争关系),读者与写着(互斥与同步关系)

他们之间最大的区别是消费者会”取走”数据,而读者不会“取走‘数据。一般情况下,读者远远多于写者,所以,一般情况下,写者较读者优先权更高。

有种情况是非常常见的,就是对于公共数据修改的机会比较少,相比较改写,他们读的机会反而更多。读写锁本质是一种自旋锁。

class CSpinRwLock:no_copy

{

       pthread_rwlock_t  rwl;

public:

        CSpinRwLock() { pthread_rwlock_init(&rwl,NULL);}

       ~CSpinRwLock() {pthread_rwlock_destroy(&rwl);}

        void rLock() {pthread_rwlock_rdlock(&rwl);}

       void rUnLock() {pthread_rwlock_unlock(&rwl);}

      bool rtryLock(){return pthread_rwlock_tryrdlock(&rwl);}

      bool wtryLock(){return pthread_rwlock_trywrlock(&rwl);}

      void wLock() {pthread_rwlock_wrlock(&rwl);}

       void wUnLock() {pthread_rwlock_unlock(&rwl);}

class scoped_rlock:no_copy

{

      CSpinRwLock  &ftx;

     void operator=(const scoped_rlock&)(){}

public:

     scoped_rlock(CSpinRwLock  & ft) : ftx(ft)   { ftx.rLock();}

      ~scoped_rlock() { ftx.rUnlock();}

};

class scoped_wlock:no_copy

{

 CSpinRwLock  &ftx;

void operator=(const scoped_wlock&)(){}

public:

     scoped_wlock(CSpinRwLock  & ft) : ftx(ft)   { ftx.wLock();}

      ~scoped_wlock() { ftx.wUnlock();}

};

};

相关文章

  • 读写锁CSpinRwLock

    写者模型与生产者消费者模型大致一样,也满足3,2,1规则。 3种关系:读者与读者(没有关系),写者与写者(竞争关系...

  • 读写锁和互斥锁 读写互斥锁,简称读写锁 mux sync.RWMutex Lock和Unlock分别对写锁进行锁定...

  • 线程同步(下)

    继上篇。这篇介绍的几种使用的较少。 读写锁 读写锁与互斥锁类似。不过读写锁允许更高的并行性。读写锁可以有三种状态:...

  • 可重入读写锁 ReentrantReadWriteLock

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

  • Java并发编程-读写锁(ReentrantReadWriteL

    章节目录 ReentrantReadWriteLock 特性 读写锁接口示例 读写锁的实现分析读写状态设计写锁的释...

  • 线程安全之读写锁

    相关API 初始化读写锁 释放读写锁 获取读锁 获取写锁 解锁 实例

  • ReadWriteLock读写锁

    1、引入ReadWriteLock读写锁 ReadWriteLock是JDK5中提供的读写分离锁。读写分离锁可以有...

  • 基于CAS的一些锁(5)- ReadWriteLock

    ReadWriteLock 读写锁。读写锁的概念其实就是共享锁和排他锁,读锁就是共享锁,写锁就是排他锁。 如何理解...

  • Go 语言的锁

    Go 语言提供两类锁: 互斥锁(Mutex)和读写锁(RWMutex)。其中读写锁(RWMutex)是基于互斥锁(...

  • 读写锁实现

    读写锁 ReentrantReadWriteLock可重入读写锁(实现ReadWriteLock接口) 使用:Re...

网友评论

      本文标题:读写锁CSpinRwLock

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