Day 11 号志如何使用-等待与号志同步

号志的操作主要分成四种,我们就做个简单的说明:

1.创建跟删除号志:主要分成create/delete两种操作模式。
2.取得跟释放号志:主要分成aquire/release两种操作模式。
3.冲洗任务等待列表的所有任务:flush为主要操作模式。
4.获取号志的资讯:show info显示号志的一般讯息/show blocked tasks 显示讯号被冻结的任务ID列表

号志有用的地方,我们後续会陆续的说明,我们先举例在等待与号志同步,号志会如何处理,大家可以先设想,如果火车要从台北南下,到了竹南分山线跟海线时,此时,在竹南站时,就会出现一个号志灯,让火车暂停,如果是快车,例如自强号,他从台北出发时,就很确定要走山线,此时,慢车例如区间车,有可能从新竹出发才获取走海线,相对的优先权就在快车自强号所取得。 我们就从这个逻辑思维来思考,

A.等待与号志同步

tWaitTask()                          自强号列车到竹南站取得优先行使权力
{
    :
    Acquire binary semaphore token    号志灯会让自强号先行,是早已经取得的权利
    :
}
    :
tSingalTask()                         区间车到竹南站取得一个通行的机会
{
    :
    Release binary semaphore token    号志会视状况,如果自强号还未到,就有机会让区间车先行,反之则需先停止,让自强号先行
    :
}

以上列举其中一种,号志其实很重要的一个观念,我们从排程一直讲到号志,其实思考方式,是可以用生活上找到的东西来做诠释,相信会比较好理解。明天我们继续讨论第二种号志的使用模式。


<<:  Day10 X 实作一个简单的 Virtualized List 吧!

>>:  阴影(下)

安全控制(security controls)

双重控制、职责分离、权限分离和 M of N Control 是用於防止欺诈和错误的安全控制。但是,...

Day17边框(CSS)

Border 边框样式 今天来介绍个基本的边框 <p class="solid &q...

Day30 - 铁人赛永丰APIs实战30天,跪着都要完赛。

终於到了第30天了,对於第一次参加iThome铁人赛的我而言觉得有点不真实呀,可以发表这篇文章有和想...

网站地图SITEMAP | 它们对於SEO有多重要?

为什麽网站地图对於SEO这麽重要呢? 什麽是网站地图XML呢? (英语:Sitemap)描述了一个网...

连续 30 天 玩玩看 ProtoPie

做事情都要有个为什麽 人是很奇怪的动物,心中会有很多对某些事情的想像,总是一件又一件的想去做。 决定...