读者优先与写者优先有什么区别

dracula68
推荐于2017-12-15 · TA获得超过116个赞
知道答主
回答量:23
采纳率:0%
帮助的人:28.7万
展开全部
读者写者问题是这样一种情况,就是允许对资源进行两种类型的操作(读和写)。而写操作是排他的(排斥读者,同样排斥其他写者),读操作是共享的(多个读者可读,排斥写者)。
这就存在两种策略:
1.读者优先(强读者同步Strong reader synchronization):总是给读者优先权,只要写者当前没有进行写操作,读者就能获得访问权。这种情况存在于读者很多,写者不经常更新的时候使用,如图书馆参考数据库采用读者优先比较好。
2.写者优先(强写者同步Strong writer synchronization):通常把优先权交给写者,而将读者延迟到所有等待的或活动的写者都完成了为止。这种情况存在于经常更新的系统,而读者对最新信息感兴趣,如机票预定系统,写者进行机票价格的更新,读者获取当前机票价。

简单的说就是资源没人占用,则谁先到先用,用的时候上锁,读者上读者锁,写者上写者锁。
1.假设先来的读者上读者锁,接下来再a)来读者,可以读资源,将读者计数器+1,b)来写者则等待(阻塞或者不断尝试)直到读者释放资源(计数器为0),选取一个写者开始写
2.若先来的是写者上写者锁,这时候又来了比如N个读者,M个写者等待(写者锁排他),这时候要是a)读者优先,则写者释放锁后,让等候的N个读者先读(其他写者接着等着等,变为情况1),这时候要是b)写者优先,则写者释放锁后,让等候的M个中的一个写者写,读者接着等待直到没有写者为止(等的的M个写者全写完还有中途再来的写者)。

读者写者问题本身就存在着饿死的情况。

参考资料: UNIX系统编程

百度网友f5d431e
2011-12-30
知道答主
回答量:10
采纳率:0%
帮助的人:5.6万
展开全部
(1)读者优先的附加限制:如果一个读者申请进行读操作时已有另一读者正在进行读操作,则该读者可直接开始读操作。(2)写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。

这是我这学期课程设计任务书上的解释
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式