第三次尝试
因为一个进程可以在另一个进程检查后更改其状态,但在另一进程进入其临界区之前,第二次尝试失败。也许我们可以通过两个语句的简单交换来解决这个问题,如图5.1c所示。
和以前一样,如果一个进程在其临界区内失败,包括控制临界区的滞后设置代码,则其他进程将被阻止,如果某个进程在临界区外失败,则另一个进程不会被阻止。
接下来,让我们从进程P0的观点来检查互斥是否得到了保证。一旦P0已将flag[0]设置为true,Pl就不能进入其临界区,直到P0已进入和离开其临界区之后,P1才能进入其临界区。当P0设置其标志时,Pl可能已经处于其临界区间。在这种情况下,P0将被while语句阻塞,直到Pl已经离开其临界区。从Pl的角度来看,同样的推理也适用。
这保证了相互排斥,但也造成了另一个问题。如果两个进程都在其中一个执行while语句之前将其标志设置为true,那么每个进程都会认为另一个已进入其临界区,从而导致死锁。
因为一个进程可以在另一个进程检查后更改其状态,但在另一进程进入其临界区之前,第二次尝试失败。也许我们可以通过两个语句的简单交换来解决这个问题,如图5.1c所示。
和以前一样,如果一个进程在其临界区内失败,包括控制临界区的滞后设置代码,则其他进程将被阻止,如果某个进程在临界区外失败,则另一个进程不会被阻止。
接下来,让我们从进程P0的观点来检查互斥是否得到了保证。一旦P0已将flag[0]设置为true,Pl就不能进入其临界区,直到P0已进入和离开其临界区之后,P1才能进入其临界区。当P0设置其标志时,Pl可能已经处于其临界区间。在这种情况下,P0将被while语句阻塞,直到Pl已经离开其临界区。从Pl的角度来看,同样的推理也适用。
这保证了相互排斥,但也造成了另一个问题。如果两个进程都在其中一个执行while语句之前将其标志设置为true,那么每个进程都会认为另一个已进入其临界区,从而导致死锁。
一张猴票,引出多少故事,善恶磨难,幸福欢乐,喜喜悲悲,人性展露,最终还是那句经典台词:玩猴票的人,最终别让猴票玩了!一辈子选择做什么样的人,也许是冥冥注定,似乎都有因果,真的是这样吗?我也不知道,都这样传说,也许是个童话,也许是个梦……人生要是真有轮回就好了,下次轮回,我们带着满满的正能量,满满的人生经验,足够的智慧,洞穿一切的眼光,活得特别精彩!似乎是这样,转念一想,如果都看清了底牌,知晓了魔术的秘密,也许我们也就会觉得一切索然无味!糊涂才有趣,糊涂才要揭开谜底,才有奔头,世界宇宙的无限秘密,吸引我们去探索,直至一个个走向终点,前仆后继,飞蛾扑火,乐此不疲,一代又一代,最终灭亡,融于浩瀚银河宇宙,继续循环,人类只不过是历史长河的一段,来过,又走了,也许新的物种又会出现,又是一个新的过程,天地混沌,然后生太极,太极生四象,四象生八卦……嫣然一笑,老夫释然,该睡觉睡觉,该喝茶喝茶……有感于电视剧《猴票》
#黄心贻[超话]#粉丝群解散,是她自己的意思,每个人都有不想面对的过去,也许我们就是吧……谁能想到一路走过来的经历,对于她来说是不堪回首的过往,是她前进的障碍,她想重生想跟过去的一切划清界限,也罢,作为粉丝能怎样呢,只好退场,这是她自己的选择,缘分到此,对彼此都是往事了,祝福她未来一切都好吧
✋热门推荐