Day 17 管道的应用

Kernel里面除了前述几种物件之外,我们以下介绍其他几种比较重要的物件,首先我们来看所谓的pipe管道,

管道主要是:提供任务之间非结构化资料的交换。

何谓非结构化的资料,定义如下(摘录自维基百科):

非结构化数据是没有预定义的数据模型或没有以预定义的方式组织的信息。非结构化信息通常包含大量文本,但也可能包含诸如日期,数字和事实之类的数据。与以现场形式存储在数据库中或在文档中注释的数据相比,这导致使用传统程序难以理解的不规则性和模糊性。

管道的用法语讯息伫列的方式类似,不同点在於:
1.管道没有所谓的优先顺序,任务先到就从管道通过
2.管道具有选择的权利,而讯息伫列则没有,讯息伫列要由任务优先顺序来传递任务,管道不管任务如何,想要过的就得依照管道的规定走。

Kernel会用一个管道控制区块(pipe control block)来管理管道,管道主要分命名与未命名的管道,其时不管命不命名,任务进入管道就是没有甚麽优先权的问题,因此要注意的,就是如果任务具有紧急性优先性的话,最好不要使用管道,还是回去讯息伫列的方式才是正确的方式。

但是管道还是有其优点,因为没有所谓的优先顺序,因此处理速度上,就会相对比较快,如果一个管道不够,可同时写入多个管道,加速任务来回的速度,所以在这个优势上,管道还是有其必要性的。


<<:  【从实作学习ASP.NET Core】Day19 | 前台 | 建立前台专案

>>:  [Day_17]回圈与生成式 - (3)

Day 06:萤幕切八段!多开神器 tmux

更新 我把从第一天到现在每天的 Home 目录都放上 GitHub 了,README.md 里面有...

敏捷(Agile)

敏捷 敏捷心态(AGILE MINDSET) 敏捷是一种由价值观,原则和实践组成的心态。满足敏捷思维...

JS 物件的参考特性 DAY59

JS 在将值赋予到变数上时 会有两个特性(Call by value(传值) 与 Call by r...

[Day19] Flutter - Const: Shared(part3)

前言 Hi, 我是鱼板伯爵今天要介绍Const,利用它来宣告一些重复使用且不变的值,教学内容只会撷取...

Day 26 隐藏小知识

一般来说, 如果要在Odoo原生资料表增加栏位, 只要在py里写好就好, 像是这样 上图是Many2...