본문 바로가기

안드로이드

안드로이드 스레드와 통신방법

안드로이드 스레드와 통신방법

 1) 메인(UI) 스레드 

 2) 바인더 스레드 : 서로 다은 프로세스에서 스레드사이의 통신에 사용

 3) 작업자 스레드 : 백그라운드 스레드

 ** 스레드간의 통신방법

 1. 자바 파이프 : 스레드간의 단방향 데이터 채널을 연결하고 설정하는 방법을 제공한다. 

              O     ->   파이프   ->   O 

            생산자                     소비자

 2. 공유메모리 : 힙메모리를 사용해서 스레드간의 정보를 전달한다. 

 3. 블로킹 큐(java.util.concurrentBlockingQueue)

                O  -> 블로킹 큐  ->   O 

            생산자                     소비자

   BlockingQueue<Integer> bloackingQueue = new LinkedBlockingQueue

 4. 안드로이드 메세지 전달 : 핸들러를 통해 메세지 전달한다. 

    -> 파이프, 블로킹큐는 UI스레드가 차단될수도 있다. 


    핸들러(handler) : 메세지큐에 메세지 삽입(생산자), 메세지 처리(소비자)

    루퍼(looper) : 메세지큐에 있는 메세지를 핸들러로 발송한다.

    메세지큐 : 메세지가 담긴 무제한 연결리스트