Day 16 讯息伫列的使用方式

讯息伫列的使用方式,常用的大致上有下列几种,

1.非互锁的单向资料通信:这种就是最简单的传送讯息方式,一个讯息来源(source)、一个讯息伫列和一个工作接收元(sink),当硬体触动一个中断服务的处理机制(interrupt service routines;简称ISR)执行时,此时ISR会释放一个或多个讯息进入讯息伫列里面,讯息来源就会传到接收元里面,如果讯息伫列满了,有可能会有丢失讯息的状况出现,这是单向通信可能会出现的问题。

2.互锁的单向资料通信:此种方式,就是保证讯息能够传达,如果没有传达成功,此时讯息来源跟工作接收元会同步的互相提醒对方,确认可以再传送另一个讯息过去,避免单项通讯时,有讯息丢失的情形出现。

3.互锁的双向资料通信:此种方式,有点向双挂号的方式,当一个讯息传送出去,会在一个讯息伫列当中等待,等到对方收到讯息时,讯息接收端会把讯息放到另一个讯息伫列,等待讯息来源方知道已经接收到讯息为止,这种双向资料通信,就是多一个回覆的讯息伫列。

4.广播通信:所谓广播通信,就是允许讯息同时给很多的接受端接收,这类广播机制,不一定适用於每种类型的讯息伫列里面,如果没弄好,有时可能会产生其他工作无法同时收到讯息的状况发生。

以上为常见的讯息伫列的使用方式,当然还有其他不同的方式,交换讯息的处理方式,大概就介绍到此了!


<<:  Unity与Photon的新手相遇旅途 | Day15-补血制作

>>:  display:block及display:inline 差别

[职场]不放过每个细节,完成一场 0 失误的专案 Demo!

每份专案都是团队尽心竭力的成果,而 Demo 就是向长官及其他部门展示团队实力的重要时刻! 但如果在...

後端说修改时只需要送「有修改的栏位」过来

今天来介绍一个,因为後端提出这个需求。要接 PATCH API 而产生的做法。 如果都是 PUT 就...

LinkServer function 不允许远端函数参考

select [LINKSERVER].dbNAME.[dbo].fn_test 出现讯息: 不允许...

Day26 interrupt, exception

前言 终於讲完了同步机制,了解到当今电脑为了更多的并行行程,与更多的CPU,在同步机制上做了许多努力...

【Day8】 Introduction – while & for

紧接着,我们就要来介绍 while、for 回圈啦!但是在介绍之前,要先提到一些基本但常用的运算子。...