当前位置:网站首页>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 .
边栏推荐
- 支持多模多态 GBase 8c数据库持续创新重磅升级
- [merge array] 88 merge two ordered arrays
- lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
- [to be continued] [UE4 notes] L2 interface introduction
- Bubble sort summary
- Csp-j-2020-excellent split multiple solutions
- 2022/7/1學習總結
- [to be continued] I believe that everyone has the right to choose their own way of life - written in front of the art column
- Simple HelloWorld color change
- 发现一个很好的 Solon 框架试手的教学视频(Solon,轻量级应用开发框架)
猜你喜欢

lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8

Page countdown

GBase数据库助力湾区数字金融发展

Do a small pressure test with JMeter tool

2022年上半年国家教师资格证考试

Simple modal box

Research on the value of background repeat of background tiling

win10虚拟机集群优化方案

Fragment addition failed error lookup

《动手学深度学习》学习笔记
随机推荐
Web APIs DOM node
[to be continued] [UE4 notes] L1 create and configure items
Collapse of adjacent vertical outer margins
[allocation problem] 455 Distribute cookies
[interval problem] 435 Non overlapping interval
Haut OJ 1245: large factorial of CDs --- high precision factorial
Heap sort summary
动漫评分数据分析与可视化 与 IT行业招聘数据分析与可视化
2022上半年全国教师资格证下
YOLOv5添加注意力机制
Pointnet++的改进
Acwing 4301. Truncated sequence
A new micro ORM open source framework
[paper notes] multi goal reinforcement learning: challenging robotics environments and request for research
Use of snippets in vscode (code template)
软件测试 -- 0 序
GBase数据库助力湾区数字金融发展
Applet Live + e - commerce, si vous voulez être un nouveau e - commerce de détail, utilisez - le!
《动手学深度学习》学习笔记
Quick sort summary