当前位置:网站首页>Reader writer model
Reader writer model
2022-07-05 05:24:00 【abs(ln(1+NaN))】
Similar to the producer consumer model , The reader writer model also has a critical resource , Two roles , Three relationships , The reader writer model is characterized by :
(1) Writer ( Threads ) Less , readers ( Threads ) many
(2) Readers will not take away critical resources
Blackboard newspaper is a typical reader writer model , There is only one person who draws blackboard newspaper ( That is, the writer ), But there are many people who read blackboard newspaper ( That is, readers ), Here is an example to introduce the reader writer model .
Catalog
One 、 Three relationships in the model
Two 、 Lock reading and writing / Basic principle of unlocking
3、 ... and 、 Priority questions
One 、 Three relationships in the model
The two roles refer to the reader role and the writer role , The three relationships refer to readers and readers 、 Writer and writer 、 Readers and writers .
1、 Writer and writer
Only one person can draw blackboard newspaper every time , If two people draw at the same time , A person paints the theme of fire fighting , Another person is painting Animal Themes , This is not what we want to see .
==》 So there is a mutually exclusive relationship between writers , You have to wait for one person to finish painting , To make the next painting
2、 Readers and writers
sometimes , You might think , Drawing blackboard newspaper and reading blackboard newspaper can be carried out at the same time , But in the process of painting , The reader may not be able to get What are you drawing , Obviously you are painting dragons , The reader said you were painting snakes . This leads to misunderstanding , So you should wait until the writer finishes drawing , Readers read again . This is an understanding angle
Another angle is , Readers are still reading , The writer wants to erase the blackboard newspaper , Obviously, this is contradictory , So we should let readers finish reading , The writer erases again .
Both angles show , Readers and writers are mutually exclusive
3、 Readers and readers
Reading by one person does not affect reading by another , There is no mutual exclusion here .==》 There is no relationship between readers
Two 、 Lock reading and writing / Basic principle of unlocking
Linux The corresponding lock is provided for readers and writers —— Reader lock and writer lock
We use the number of readers as a critical resource , namely int readers = 0;
1、 Readers lock / Unlock
The reader's declaration of the locking function is as follows :
Because there is no relationship between readers , So locking and unlocking are two independent processes
Lock = People who read blackboard newspapers add 1
Unlock = The number of people reading blackboard newspaper is reduced 1
// Lock
lock();
readers++;
unlock();
// Unlock
lock();
readers--;
unlock();
2、 The writer locks / Unlock
The writer's locking function is declared as follows :
When there are readers , namely readers Not for 0 when , The writer cannot modify the content , After locking at this time , You must wait until the writer writes the content , To unlock
// Lock
lock();
while(readers > 0)
{
wait(); // Enter the condition variable and wait
}
modify(); // Used to indicate the operation of the writer to modify the content
// Unlock
unlock(); // Generally, after modifying the content, unlock
3、 ... and 、 Priority questions
In the previous description of the relationship between readers and writers , We analyzed their relationship from two perspectives . One is the writer first , I haven't finished , Don't even read ; The other is reader first , I haven't finished reading , Don't wipe it .
In actual use , More of us will choose readers first , After all, the minority is subordinate to the majority , The most basic feature of the reader writer model is that there are many readers , Few writers . That is, the writer is less important than the reader .
Readers first : When readers and writers arrive at the same time , Readers have priority in accessing
Writer first : When readers and writers arrive at the same time , Readers who come later than the current writer , Do not enter the critical area for access , etc.
There are no readers in the critical area , namely readers = 0 when , The writer writes first .
边栏推荐
- 嵌入式数据库开发编程(六)——C API
- Corridor and bridge distribution (csp-s-2021-t1) popular problem solution
- Summary of Haut OJ 2021 freshman week
- Demonstration of using Solon auth authentication framework (simpler authentication framework)
- object serialization
- Binary search basis
- High precision subtraction
- SDEI初探-透过事务看本质
- How can the Solon framework easily obtain the response time of each request?
- [leetcode] integer inversion [7]
猜你喜欢
[turn to] MySQL operation practice (III): table connection
支持多模多态 GBase 8c数据库持续创新重磅升级
GBase数据库助力湾区数字金融发展
【论文笔记】Multi-Goal Reinforcement Learning: Challenging Robotics Environments and Request for Research
Double pointer Foundation
[turn to] MySQL operation practice (I): Keywords & functions
Ue4/ue5 illusory engine, material chapter, texture, compression and memory compression and memory
win10虚拟机集群优化方案
C语言杂谈1
Web APIs DOM节点
随机推荐
Acwing 4301. Truncated sequence
PMP考试敏捷占比有多少?解疑
一个新的微型ORM开源框架
Drawing dynamic 3D circle with pure C language
Transport connection management of TCP
What is the agile proportion of PMP Exam? Dispel doubts
搭建完数据库和网站后.打开app测试时候显示服务器正在维护.
Reverse one-way linked list of interview questions
sync.Mutex源码解读
Merge sort
记录QT内存泄漏的一种问题和解决方案
Research on the value of background repeat of background tiling
Fragment addition failed error lookup
How can the Solon framework easily obtain the response time of each request?
Download xftp7 and xshell7 (official website)
Under the national teacher qualification certificate in the first half of 2022
2022上半年全国教师资格证下
Es module and commonjs learning notes -- ESM and CJS used in nodejs
Haut OJ 1245: large factorial of CDs --- high precision factorial
The next key of win generates the timestamp file of the current day