문제

이 질문은 약간 철학적이며 "데이터와 코드가 같은 것인지 아닌지"와 같습니다.

이벤트(신호)와 상태 사이에 명확한 차이가 있나요?

예:

예를 들어, 도로를 지나가는 자동차가 있습니다.차가 경적을 울리면 한 남자(man_A) 길을 건너던 중 갑자기 멈춥니다.경적은 신호입니다.man_A 갑자기 멈춘다'는 상태다. man_A.

다른 사람 (man_B) 역시 같은 시간, 같은 장소에서 길을 건너고 있었습니다.

그것을 고려해 봅시다 man_B 귀머거리였기 때문에 경적 소리를 들을 수 없었습니다.그러나 깨닫는다 "man_A 갑자기 멈췄다”는 신호가 될 것이다.그는 마치 경적 소리를 듣는 것처럼 갑자기 멈추곤 했습니다.

그래서 저는 "상태는 다른 프로세스에 대한 신호가 될 수 있습니다.신호는 프로세스를 다른 상태로 만듭니다.그렇기 때문에 그들은 완전히 똑같은 것입니다."

제가 틀렸나요? 둘 사이에 뚜렷한 차이가 있나요?

신호는 상태 변화입니다.우리는 두 가지 상태로 모든 신호를 정의할 수 있습니다.

도움이 되었습니까?

해결책

신호는 특정 특정 시점에 오기 때문에 상태는 신호가 아닙니다.

상태-변화 신호의 결과이며 그 자체로 신호로 볼 수 있습니다.그러나 그것은 국가 자체가 아니다.신호가 사라진 후에도 상태는 계속 유지됩니다.

예를 들어, 초기 상태는 어떻게 신호가 될까요?

다른 팁

그들은 매우 다릅니다:

  • 동일한 이벤트로 인해 현재 상태에 따라 다른 상태로 전환될 수 있습니다.
    Three states with transitions between them, triggered by the same event

  • SCXML에서는 다음을 가질 수 있습니다. <parallel> 직교 영역을 정의하는 상태.이 경우 단일 이벤트가 여러 상태로의 동시 전환을 트리거할 수 있습니다.
    enter image description here

  • 또한, cond="…" 속성, 다른 상태로의 전환은 다음과 같습니다. ~ 아니다 이벤트에 의해 트리거될 때 발생합니다.이제 상태를 변경할 수 없는 이벤트가 생겼습니다.

  • 또한, 아무런 부담 없이 전환이 가능합니다. event 속성을 사용하여 일부 데이터 모델 값이나 스크립트 결과가 올바른 경우 즉시 상태 변경을 발생시킵니다.이제 트리거 이벤트 없이 발생할 수 있는 상태 변경이 생겼습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top