当前位置:网站首页>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 .
边栏推荐
- 《动手学深度学习》学习笔记
- 挂起等待锁 vs 自旋锁(两者的使用场合)
- [es practice] use the native realm security mode on es
- JVM call not used once in ten years
- Applet live + e-commerce, if you want to be a new retail e-commerce, use it!
- Bucket sort
- Use the command character to close the keyboard command of the notebook
- GBase数据库助力湾区数字金融发展
- win10虚拟机集群优化方案
- Haut OJ 1221: a tired day
猜你喜欢
Fragment addition failed error lookup
Research on the value of background repeat of background tiling
Gbase database helps the development of digital finance in the Bay Area
TF-A中的工具介绍
Corridor and bridge distribution (csp-s-2021-t1) popular problem solution
lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
对象的序列化
Improvement of pointnet++
小程序直播+电商,想做新零售电商就用它吧!
挂起等待锁 vs 自旋锁(两者的使用场合)
随机推荐
Transport connection management of TCP
Haut OJ 1245: large factorial of CDs --- high precision factorial
[to be continued] [depth first search] 547 Number of provinces
[depth first search] 695 Maximum area of the island
Zzulioj 1673: b: clever characters???
一个新的微型ORM开源框架
[paper notes] multi goal reinforcement learning: challenging robotics environments and request for research
小程序直播+電商,想做新零售電商就用它吧!
Service fusing hystrix
Add level control and logger level control of Solon logging plug-in
A new micro ORM open source framework
2022/7/1學習總結
Magnifying glass effect
Applet Live + e - commerce, si vous voulez être un nouveau e - commerce de détail, utilisez - le!
Introduction to tools in TF-A
[转]: OSGI规范 深入浅出
《动手学深度学习》学习笔记
Research on the value of background repeat of background tiling
Support multi-mode polymorphic gbase 8C database continuous innovation and heavy upgrade
When will Wei Lai, who has been watched by public opinion, start to "build high-rise buildings" again?