Thread & 이벤트 드리븐

Updated:

이벤트 드리븐 방식과 thread개념을 알고있어야 관련 충돌이 발생하였을 때, 원인을 파악하기가 쉽다.

EDA

: 이벤트를 기반으로 하는 아키텍쳐 설계 방식

이벤트의 생산, 감지, 소비 및 반응 또는 시스템 상태의 중대한 변화를 지원하는 소프트웨어의 모델 혹은 아키텍처 패러다임. 복잡성과 역동성에 가장 효율적으로 대응할 수 있는 모델이다. 프로그램이 어떤 액션(이벤트)에 대핸 반응으로 동작하는 패턴이라 생각하면 된다.

EDP

: 이벤트를 기반으로 하는 프로그래밍

  • 이벤트 처리 과정
    이벤트에 반응하여 동작을 변경하는 방식을 Event-driven방식이라고 한다. 프로그램은 이벤트를 처리하기 위한 이벤트 핸들러를 가지며, 이벤트 루프라는 곳에서 이를 처리한다. 이벤트 루프는 기본적으로 무한루프이며, 콜스택에서 실행될 내용이 있는지 여부를 계속확인합니다. 콜스택이 비어있으면 콜스택으로 이동할 항목이 있는지 이벤트 큐를 검사합니다. 메서드가 존재하는 경우 해당 메서드를 콜스택으로 이동시키고 메서드가 실행된다. 메인쓰레드에서 동작하며 메인쓰레드가 아닌 다른 쓰레드에서 수행시키면 막는다.
  • Event-driven의 구조는 3가지로 분류된다
  • 이벤트를 발생시키는 객체(EventEmitter)
  • 이벤트를 관리하는 객체(EventDispatcher)
  • 이벤트가 발생했을 때 실행되는 객체 (EventHandler)

메인스레드

메인스레드는 보통 UI스레드라고 불린다. 스레드는 하나의 프로세스에서 보장받는 하나의 동작의 흐름이다. UI변경은 반드시 UI스레드에서 동작하여야 한다. 그래서UI와 별도로 시간이 오래걸리는 작업은 별도의 스레드를 생성해서 동작을 해주는 것이 좋다.

reference

https://velog.io/@limprove89/%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EA%B8%B0%EB%B0%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%93%B0%EB%A0%88%EB%93%9C

Leave a comment