Day 12 多工等待跟号志同步与信用追踪同步

我们在本篇来说一下,号志使用的第二种方式:多工等待跟号志同步

如果说,有三个优先任务在执行多工处理,当某一个任务完成时,会暂时把完成的任务给冻结住,此时,就会给讯号任务(signal task)一个机会去完成它的任务,所以变成讯号任务暂时优先去处理他的工作,但是因为等待中优先的任务其实还是有优先权,所以他有可能随时去抢占讯号任务的位置,所以必须用flush冲洗的方式,尽速把讯号任务给完成,再把优先权回到等待任务上去执行他的任务。

换个方式来说,如果有三辆自强号的列车进入竹南站,那麽可能到竹南站时要分山海线,虽然都有优先通行的权利,可是还是要先确认旅客都有上车,并且到底哪辆自强号列车要先发车,因为有载客跟分线行驶的问题,所以自强号的任务上会有暂时冻结的情况,此时,区间车就取得一个优先通行机会,如果现场有多辆区间车,就可以趁这个冻结时间内,优先通过停止号志,驶离竹南站,但是自强号本来就是优先,所以当确认後的自强号开始行驶後,区间车就给要立刻把优先权还给还给自强号,进入等待的状态,而这个还优先权的功能就是flush。

然而有没有讯号任务(singal task)的优先权跟等待任务(wait task)的优先权相同呢?

其实是有的,假设等待的任务等级没那麽高的情况下,还是会出现无法辨识的情况,这种就需要利用号志追踪的方式去控制,我们假设,如果讯号任务突然大量的被释放出,此时等待任务有可能会因此而被冻结住,但是因为等待任务毕竟还是优先层级较高,所以此时就要去追踪讯号任务的号志,根据状况适时的阻断讯号任务,让优先的等待任务先行。这个方式可以称做:信用追踪同步

我们一样换个方式来说明,如果莒光号跟区间车,正常的情况下,莒光号的优先权的确高於区间车,但有时也并非如此明显,可是如果区间车较多要先行,此时,就会影响到莒光号通过的速度,所以此时就要去追踪区间车的状况,避免莒光号误点,大致上,就是为了要处理这种状况,所以才会有信用追踪同步的应用。


<<:  [面试][前端]如何判断专案要使用 CSR 还是 SSR?

>>:  追求JS小姊姊系列 Day11 -- 流程错了怎办?难道要跟D特终老?

Day-28 轻松使用Excel生成乱数并排名

今日练习档 ԅ( ¯་། ¯ԅ) 今日的内容是要带大家认识如何使用Excel判断最大值和最小值,以及...

Day1 後端及PHP介绍

Day1 後端及PHP介绍 大家好~ 之後的30天来跟大家介绍一下我学习PHP到现在的过程,主要会以...

Leetcode 挑战 Day 12 [ 26. Remove Duplicates from Sorted Array]

26. Remove Duplicates from Sorted Array 今天我们一起挑战le...

Day 4 - Remove Duplicates from Sorted Array

大家好,我是毛毛。ヾ(´∀ ˋ)ノ 废话不多说开始今天的解题Day~ 26. Remove Dupl...

超级好用的avast删除方法

你想从 Mac 中删除 Avast 吗? 事实上,卸载 Avast 并不像其他程序那麽容易。 许多用...