信号量的 P/V 为什么要这么命名 |
您所在的位置:网站首页 › 蜂蜜的英文是什么单词 › 信号量的 P/V 为什么要这么命名 |
一、引言
有没有人跟我一样,在学习信号量的时候,曾经问过自己这么一个问题: 信号量的 P/V 操作,为什么要这么命名 P 代表了哪个单词,V 又代表了哪个单词。问了自己之后,仿佛又找不到对应的英文单词能够方便记忆,于是乎只能通过死记硬背来记住。 二、探索直到,我看到了《Linux程序设计(第四版)》第 14 章,才知道了真正的答案(以下摘自第 14.1 章节): 信号量的一个更正式的定义是:它是一个特殊变量,只允许对它进行等待(wait)和发送信号(signal)这两种操作。因为在 Linux 编程中,“等待” 和 “发送信号” 都已具有特殊的含义,所以我们将用原先定义的符号来表示这两种操作 P(信号量变量):用于等待。 V(信号量变量):用于发送信号。 这两个字母分别来自于荷兰语单词 passeren(传递,就好像位于进入临界区域之前的检查点)和 vrijgeven(给予或释放,就好像放弃对临界区域的控制权)。 也就是说,P 来自于荷兰语 Passeren,意味着进入临界区域,V 来自于荷兰语 vrijgeven,意味着放弃临界区域。 那么问题由来了,为啥是荷兰语呢? 因为信号量的概念就是荷兰计算机科学家 Edsger Dijkstra 提出来的,信号量的概念是并发编程领域的一大重大的进步。 可能有人会觉得 Dijkstra 非常的熟悉,仿佛就好像是 Dijkstra 算法的命名,是的,就是他,就是那个迪杰特斯拉算法的作者,也就是他提出来了信号量!!! 很有趣吧,你会发现,计算机科学领域里面的哪怕是一个技术的惯用命名,都有着深厚的历史渊源。偶尔去探索一下,都会发现不少有趣的信息。 To be Stronger:) |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |