안드로이드 스레드와 통신방법
1) 메인(UI) 스레드
2) 바인더 스레드 : 서로 다은 프로세스에서 스레드사이의 통신에 사용
3) 작업자 스레드 : 백그라운드 스레드
** 스레드간의 통신방법
1. 자바 파이프 : 스레드간의 단방향 데이터 채널을 연결하고 설정하는 방법을 제공한다.
O -> 파이프 -> O
생산자 소비자
2. 공유메모리 : 힙메모리를 사용해서 스레드간의 정보를 전달한다.
3. 블로킹 큐(java.util.concurrentBlockingQueue)
O -> 블로킹 큐 -> O
생산자 소비자
BlockingQueue<Integer> bloackingQueue = new LinkedBlockingQueue
4. 안드로이드 메세지 전달 : 핸들러를 통해 메세지 전달한다.
-> 파이프, 블로킹큐는 UI스레드가 차단될수도 있다.
핸들러(handler) : 메세지큐에 메세지 삽입(생산자), 메세지 처리(소비자)
루퍼(looper) : 메세지큐에 있는 메세지를 핸들러로 발송한다.
메세지큐 : 메세지가 담긴 무제한 연결리스트