스레드 통신방법

James_·2022년 5월 25일
0

CS

목록 보기
4/4

스레드 하나에 루퍼, 핸들러, 메시지 큐를 하나씩 가지고 있다.

메시지 큐

  • 루퍼 내부에 존재, 외부 스레드로부터 핸들러를 통해 받은 메시지나 테스크를 저장하는 역할
  • Runnable 객체면 핸들러에게 전달하지 않고 run()을 수행
  • Message 객체 내부의 명시되어 있는 Handler의 handleMessage() 수행

루퍼

  • 메시지큐에서 메시지를 순차적으로 꺼내서 핸들러에게 전달하는 역할

핸들러

  • 받은 메시지를 처리하고, 스레드 간의 메시지 전달하는 작업을 수행

역할

  1. 루퍼에게서 받은 메시지나 테스크를 일정한 시간에 수행한다.
  2. 외부 스레드로부터 받은 메시지를 메시지 큐에 집어넣는 작업을 수행한다.


1. 다른 스레드에서 특정 스레드의 Handler의 sendMessage를 활용하여 메인 스레드 looper의 메시지큐에 메시지를 전달.
2. 해당 스레드의 looper는 메시지 큐에서 loop()를 통해 메시지를 하나씩 handler에게 전달
3. 핸들러에서 handleMessage()를 통해 메시지 처리

profile
Android 개발자

0개의 댓글