
这里最恶心的地方就是在这个S2,我先讲一下我个人的理解。
加一个S2是为了避免,有好几个读者进程先被阻塞在wait(s)这一步,在这之后写者再被阻塞;那么唤醒的时候,如果是按先阻塞先唤醒的顺序的话,会使得被阻塞的读者进程先被唤醒,写者后被唤醒,与写者优先的思想相悖。所以加这个S2,可以使得当读者互斥访问Readcount的时候,如果有写者申请写锁,必定能在第一个读者和第二个读者之间,进行写入。


本文探讨了在读者写者问题中,S2同步原语的重要性。S2的存在旨在避免多个读者同时访问资源,确保写者优先原则。通过这种方式,当写者尝试获取写锁时,可以确保在第一个读者完成读取后插入写操作。

这里最恶心的地方就是在这个S2,我先讲一下我个人的理解。
加一个S2是为了避免,有好几个读者进程先被阻塞在wait(s)这一步,在这之后写者再被阻塞;那么唤醒的时候,如果是按先阻塞先唤醒的顺序的话,会使得被阻塞的读者进程先被唤醒,写者后被唤醒,与写者优先的思想相悖。所以加这个S2,可以使得当读者互斥访问Readcount的时候,如果有写者申请写锁,必定能在第一个读者和第二个读者之间,进行写入。



被折叠的 条评论
为什么被折叠?