안녕하세요.
이벤트 발생 후 실행순서 문의 드립니다.
간단한 예를 들어서 질문 드리겠습니다.
0.5초 타이머로 발생하는 Event A와 B가 있다고 가정하고
SetUserValue와 GetUserValue 로 값을 저장하는 변수 K가 있습니다.
A, B 두 타이머를 동시에 시작한다고 했을때
A와 B 이벤트는 거의 동시에 발생하면서 순서가 다른 경우도 생길텐데요
여기서 K라는 변수가 0 이면 1로 바꾸고, 1이면 0으로 바꾸는 로직이
A와 B 로직에 들어있다면,
0.5초 마다 초기값 0 이었던 변수 K가 1로 갔다가 다시 0으로 바뀌는걸 보장 할 수 있을까요?
그러니까, 거의 동시에 발생한 이벤트의 로직이 순차실행 보장이 되는지 궁금합니다.
차트 봉 추가 이벤트나 타이머에 의해서 거의 동시에 발생하는 이벤트 들이 있을텐데요
이벤트 A,B,C 들이 거의 동시에 발생 했을 때
내부적으로 큐와 비슷하게 가지고 있다가
A이벤트의 로직이 처음부터 끝까지 실행되고 난 후에 B로직이 처음부터 끝까지 실행되고 다음
C의 로직이 처음부터 끝까지 되는건지
아니면
A로직이 실행되고 있는 중간에 B로직이 실행되는 구조인지 궁금합니다.
이벤트에서 중복실행을 방지하기 위해
그러니까 A,B,C 이벤트에서 한 곳에서만 주문이 발생하게 하려고 하는데요
(A메서 주문이 발생하면 B,C 에서는 주문안함)
이 방법으로 SetUserValue와 GetUserValue 를 이용해서 변수 하나에 값을 저장하게 하면
가능할지가 제가 최종적으로 드리고 싶은 질문이었는데
의도가 잘 전달되게 최대한 풀어서 질문 드립니다.
답변 부탁드립니다.
감사합니다.
답변 1
예스스탁
예스스탁 답변
2016-01-26 16:52:42
안녕하세요
예스스탁입니다.
스팟에서 이벤트는 동시는 없습니다.
타이머도 조금이라도 먼저셋팅된 이벤트가 먼저 동작하게 됩니다.
먼저 발생한 이벤트에서 수행을 한후 다음 이벤트로 넘어가게 됩니다.
수행중에 다음 이벤트가 발생하면 말씀하신 부분과 같이 내부적으로 가지고 있다가
순차적으로 수행을 하게 됩니다.
그러므로 3개의 이벤트 중 하나에서 주문이 발생하면
나머지에서 주문안하게 하시려면
전역변수 만들어서 값저장해 이용하셔도 되고
SetUserValue와 GetUserValue를 이용하셔도 됩니다.
즐거운 하루되세요
> 데칸 님이 쓴 글입니다.
> 제목 : 이벤트 발생 후 실행순서 문의드립니다.
> 안녕하세요.
이벤트 발생 후 실행순서 문의 드립니다.
간단한 예를 들어서 질문 드리겠습니다.
0.5초 타이머로 발생하는 Event A와 B가 있다고 가정하고
SetUserValue와 GetUserValue 로 값을 저장하는 변수 K가 있습니다.
A, B 두 타이머를 동시에 시작한다고 했을때
A와 B 이벤트는 거의 동시에 발생하면서 순서가 다른 경우도 생길텐데요
여기서 K라는 변수가 0 이면 1로 바꾸고, 1이면 0으로 바꾸는 로직이
A와 B 로직에 들어있다면,
0.5초 마다 초기값 0 이었던 변수 K가 1로 갔다가 다시 0으로 바뀌는걸 보장 할 수 있을까요?
그러니까, 거의 동시에 발생한 이벤트의 로직이 순차실행 보장이 되는지 궁금합니다.
차트 봉 추가 이벤트나 타이머에 의해서 거의 동시에 발생하는 이벤트 들이 있을텐데요
이벤트 A,B,C 들이 거의 동시에 발생 했을 때
내부적으로 큐와 비슷하게 가지고 있다가
A이벤트의 로직이 처음부터 끝까지 실행되고 난 후에 B로직이 처음부터 끝까지 실행되고 다음
C의 로직이 처음부터 끝까지 되는건지
아니면
A로직이 실행되고 있는 중간에 B로직이 실행되는 구조인지 궁금합니다.
이벤트에서 중복실행을 방지하기 위해
그러니까 A,B,C 이벤트에서 한 곳에서만 주문이 발생하게 하려고 하는데요
(A메서 주문이 발생하면 B,C 에서는 주문안함)
이 방법으로 SetUserValue와 GetUserValue 를 이용해서 변수 하나에 값을 저장하게 하면
가능할지가 제가 최종적으로 드리고 싶은 질문이었는데
의도가 잘 전달되게 최대한 풀어서 질문 드립니다.
답변 부탁드립니다.
감사합니다.