C'è una chiara differenza tra evento e stato
-
21-12-2019 - |
Domanda
Questa domanda è un po 'filosofica ed è come "Dati e codice sono la stessa cosa o meno".
C'è una chiara differenza tra evento (segnale) e stato?
Esempio:
Ad esempio, c'è un'auto che passa sulla strada. Quando le corna della macchina, un uomo (man_A
) che attraversano la strada si ferma improvvisamente. Il clacson è il segnale, "man_A
si arresta improvvisamente" è lo stato di man_A
.
Un altro uomo (man_B
) stava attraversando anche la strada allo stesso tempo, nello stesso posto.
Consideriamo che man_B
era sordo, quindi non può sentire il corno. Ma realizzando "man_A
si fermò improvvisamente" sarebbe un segnale per lui. Si sarebbe fermato all'improvviso come se avesse sentito il corno.
Così direi "Uno stato potrebbe essere un segnale per un altro processo, un segnale mette un processo un altro stato, ecco perché sono esattamente la stessa cosa"
sono sbagliato, c'è una chiara differenza tra loro?
Un segnale è un cambiamento di stato. Possiamo definire qualsiasi segnale con due stati.
Soluzione
Bene, uno stato non è un segnale perché un segnale viene fornito in un certo punto specifico nel tempo.
A State- Modifica è il risultato di un segnale e può essere visto come un segnale da parte sua.Ma non è lo stato con te stesso.Lo stato continua ad essere dopo che il segnale è andato da tempo.
Come sarebbe stato lo stato iniziale un segnale, ad esempio.
Altri suggerimenti
Sono molto, molto diversi:
- .
-
Lo stesso evento può causare transizioni a stati diversi, a seconda dello stato corrente:
-
In SCXML è possibile avere
<parallel>
afferma che definiscono le regioni ortogonali. In questo caso un singolo evento può attivare più transizioni simultanee a stati diversi:
-
Inoltre, a causa della possibile presenza di attributi
cond="…"
, una transizione verso un altro stato può o maggio non si verifica quando si è attivato da un evento. Quindi ora abbiamo un evento che potrebbe non cambiare stato. -
Inoltre, è possibile avere una transizione senza attributo
event
, causando un cambiamento di stato non appena un valore del modello di dati o il risultato dello script è giusto. Quindi ora abbiamo un cambiamento di stato che può aver luogo senza un evento di innesco.