为什么信号不被简单地称为事件?

4
据我所知,在Python和Django中,信号是简单的委托事件。它们在功能上与C#、Java、ActionScript等语言中的典型事件概念有什么区别吗?
4个回答

24

实际上,“信号”比“事件”存在的时间更长。在最早使用时,信号是一种异步方式,用于通知进程事件发生了。由于Unix比Django要古老得多(而且很多Django的工作是来自于pydispatcher,原始的工作就是这样完成的),因此这个名称一直沿用至今。

你可以说事件其实就是信号!


4

信号通常与操作系统设施相关联,而事件通常是应用程序定义的。在某些技术堆栈中,操作系统级别的内容可能被隐藏得足够好,以至于API没有区别,但在其他情况下可能不是这样。


2
据我所知,Qt是第一个实现信号/槽机制的。Qt文档解释了这个隐喻:“当特定事件发生时,会发出一个信号”。这种区别是如此微妙,以至于术语已经变得模糊不清。

1
你可以问“为什么事件不被简单地称为信号?”这样的术语差异是很常见的。

此外,我相信"signals"具有优先权。 - dmckee --- ex-moderator kitten
这并不是一个术语问题,我特别问了一下它们为什么被命名不同是否有某种功能上的原因。 - Soviut
这不是一个术语问题吗?“为什么这些相同的东西没有相同的名称?” - Logan Capaldo
2
如果您阅读问题正文而非标题,就会非常清楚,我在问是否有功能上的差异。 - Soviut

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接