美文网首页
算法:读写者问题

算法:读写者问题

作者: 风ai翔 | 来源:发表于2021-05-09 21:36 被阅读0次

锁解析 :

  • RWMutex : 读-写互斥锁
  • WWMutex : 写-写互斥锁
  • WPriorityMutex = 1 : 写优先锁
  • WW-CMutex : 修改写者个数锁
  • RR-CMutex :修改读者个数锁
int : writeCount=0, readCount=0

void reader() {
    //读 抢锁
    P(WPriorityMutex)
    P(RWMutex)
    P(RR-CMutex)
        if (++readCount == 1) P(WWMutex)
    V(RR-CMutex)
    V(RWMutex)
    V(WPriorityMutex)

    //读操作。。。

    P(RR-CMutex)
        if (--readCount == 0) V(WWMutex)
    V(RR-CMutex)
}

void write() {
    P(WW-CMutex)
        if (++writeCount == 1) P(RWMutex)
    V(WW-CMutex)

    P(WWMutex)

    //写操作。。。

    V(WWMutex)

    P(WW-CMutex)
        if (--writeCount == 0) P(RWMutex)
    V(WW-CMutex)
}

相关文章

  • 算法:读写者问题

    锁解析 : RWMutex : 读-写互斥锁 WWMutex : 写-写互斥锁 WPriorityMutex =...

  • 读写者问题

    读写者问题 问题 背景 有读者和写者两组并发进程共享一个文件 读者可以同时访问文件 写进程必须独占文件,不可和其他...

  • Go 读写锁

    读写锁sync.RWMutext实现读者写者问题

  • 7.8图的应用:最短路径问题

    最短路径问题:Dijkstra算法 ❖解决带权最短路径问题的经典算法是以发明者命名的“Dijkstra算法”❖这是...

  • Critical Sections with atomic re

    下面是利用原子读写操作的两种算法 在下面的算法中对数据的读写都是原子的 算法一两段程序如下:(1) (2) 这个解...

  • 算法学习的必要性

    Time: 2019-08-06 为什么考察算法? 算法可以看出候选者够不够聪明 实现算法问题,可以控制时间 算法...

  • 算法(七):图解动态规划

    算法简介 动态规划,将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法 与贪婪算法区别 2者都是将大问题...

  • 8.3 经典进程同步问题-读写者问题

    问题描述 有读者和写者两组并发进程,共享一个文件,当两个或以上的读进程同时访问共享数据时不会产生副作用,但若某个写...

  • 四种Excel文件读写的问题场景模式

    1.学习分解不同的Excel文件读写问题,熟悉四种Excel文件读写的问题场景模式。①单元格读写、②按行读写、③按...

  • 读者-写者问题的应用——多面墙的查询问题

    什么是读者-写者问题? 读者-写者问题是指多个进程对一个共享资源即数据集(如文件或记录集)进行读写操作的问题。把只...

网友评论

      本文标题:算法:读写者问题

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