Asynchronous 具有异步转换的状态机中的状态是什么
想知道如果转换是异步的,切换和定义状态的约定是什么 例如,假设有三种状态a、b和c 这两个转换分别称为d和e 假设我们处于状态a,然后触发事件x以转换到状态b 时间线可能如下所示:Asynchronous 具有异步转换的状态机中的状态是什么,asynchronous,state-machine,Asynchronous,State Machine,想知道如果转换是异步的,切换和定义状态的约定是什么 例如,假设有三种状态a、b和c 这两个转换分别称为d和e 假设我们处于状态a,然后触发事件x以转换到状态b 时间线可能如下所示: a a a a a a a a a x b b b b b b b . . . . . . . . . . . . . . . . . . . . . . . . . . . d complete --^
a a a a a a a a a x b b b b b b b
. . . . . . . . . . . . . . . . . . . . . . . . . . .
d complete --^
|_________________|
intermediate
area
在中间区域,想知道状态是什么,因为系统正在变化,所以它可能既不处于状态a也不处于状态b。想知道人们通常是如何处理这个问题的
似乎有三种方式可以实现:
违反RTC语义的另一种常见方式是阻塞状态机内部(例如,通过调用延时函数、信号量或其他此类操作系统原语)。在这种情况下,阻塞(和取消阻塞)是向状态机传递事件的另一种“后门”方式。问题是,这样的“后门”事件到达RTC步骤的中间,从而违反RTC语义。它既不处于过渡状态,也不处于过渡状态。它介于两者之间。但这又有什么关系呢?你是在某处对该州进行民意调查吗?什么是“异步”转换?状态将被轮询,是的。从彻底的角度来看,我希望在州与州之间发生一件明确的事情。我认为,对州机器进行投票是个坏主意。为什么不让状态机在进入和/或离开状态时调用回调?然后您的系统可以动态地响应状态更改。此外,它还可以为另一个状态机生成事件。
d: a -> b
e: b -> c
a a a a a a a a a x b b b b b b b
. . . . . . . . . . . . . . . . . . . . . . . . . . .
d complete --^
|_________________|
intermediate
area