码迷,mamicode.com
首页 > 编程语言 > 详细

多线程程序的临界区

时间:2019-08-10 17:06:30      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:title   this   and   访问   限制   图片   管理   document   color   

所谓的临界区:是指进程中的一段需要访问共享资源并且当另一个进程处于相应代码区域时便不会被执行的代码区域
对于临界区的管理的必须要满足一下的四个要求:
互斥:同一时间临界区中最多存在一个线程
Progress:如是一个线程想要进入临界区,那么它最终会成功
有限等待:如果一个线程i处于入口区,那么在i的请求被接受之前,其他线程进入临界区的时间是有限制的。
无忙等待(可选):如果一个进程在等待进入临界区,那么在它可以进入之前会被挂起。

解决方案
①:禁用硬件中断
缺点:一旦中断被禁用,线程就无法被停止,整个系统都会为你停下来。可能导致其他线程处于饥饿状态。
②:基于软件的解决方法
③:更高级的抽象

案例分析:假设有甲乙两个人共用一个冰箱里的面包,如果那个人发现冰箱里没有面包后就去购买面包。如果保证冰箱里的面包不会多也不会少。

技术图片代码

技术图片

多线程程序的临界区

标签:title   this   and   访问   限制   图片   管理   document   color   

原文地址:https://www.cnblogs.com/lihuali/p/11332043.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!