这个问题有点哲学,就像“数据和代码是否相同”。
事件(信号)和状态之间是否有明显的区别?
示例:
例如,有一辆车经过这条路。当汽车喇叭,一名男子(man_A
)过马路时突然停了下来。喇叭是信号,“man_A
突然停止”是man_A
的状态。
另一名男子(man_B
)同时也在同一个地方过马路。
让我们考虑man_B
聋,所以他听不到号角。但意识到“man_A
突然停止”对他来说将是一个信号。他会突然停下来,仿佛听到了号角。
所以我会说“状态可能是另一个进程的信号。一个信号将一个进程置于另一个状态。这就是为什么它们完全相同的事情”
我错了,他们之间有明显的区别吗? 德尔>
信号是状态变化。我们可以用两种状态定义任何信号。
答案 0 :(得分:0)
嗯,状态不是信号,因为信号是在某个特定时间点发出的。
状态 - 更改是信号的结果,可以被自己视为信号。但这不是国家自己。在信号早已消失之后,状态仍在继续。
例如,初始状态如何成为信号。
答案 1 :(得分:0)
他们非常非常不同:
同一事件可能会导致转换到不同的状态,具体取决于当前状态:
在SCXML中,您可以<parallel>
个状态定义正交区域。在这种情况下,单个事件可以触发多个同时转换到不同的状态:
此外,由于可能存在cond="…"
属性,当由事件触发时,转换到另一个州可能或可能不。所以现在我们有一个可能不会改变状态的事件。
此外,可以进行没有event
属性的转换,只要某些数据模型值或脚本结果正确,就会导致状态更改。所以现在我们可以在没有触发事件的情况下进行状态更改。