본문 바로가기

Android/Thread

안드로이드/Android Android에서 Thread(쓰레드) 란 무엇 인가?

안드로이드/Android Android에서 Thread(쓰레드) 란 무엇 인가?

Thread(쓰레드) 란 무엇 일까요?

쉽게 말해 멀티 작업을 하기 위한 기능 이라고 생각 하시면 됩니다. 예를 들자면 메시지를 보내면서 음악을 들을 수 있는 기능이라고 생각 하시면 이해 하기가 편하실 겁니다.

안드로이드에서는 멀티 쓰레드 작업을 잘 지원해 주는데요 어플리케이션을 실행하기 되면 기본적으로 하나의 메인쓰레드(UI쓰레드)가 실행되여 작업을 처리 하게 됩니다.

아 그런데 위에서 재가 메인쓰레드옆에 UI쓰레드 라고 쓴 이유는 무엇일까요?

그 이유는 안드로이드 에서는 UI 업데이트를 할때 꼭 메인 쓰레드가 UI를 업데이트 해줘야 하기 때문입니다. 다른 쓰레드로 업데이트를 할 경우 문제가 발생 할 수 있기 때문이죠.

그래서 새로운 쓰레드를 생성할 경우에는 시간이 오래걸리는 작업적인 부분 ( 예를 들면 for문 , 네트워크 작업 등 ) 만을 실행해 주고 메인쓰레드로 UI작업을 알려주어서  메인쓰레드가 UI를 업데이트 하도록 알려주어야 합니다.

그런데 어떻게 메인쓰레드와 통신을 할 수 있을까??

바로 핸들러라는 녀석을 사용하여 작업쓰레드와 메인쓰레드와 소통을 할 수 있습니다.
핸들러란 쓰레드 끼리 통신 장치라고 생각 하면 됩니다.

자신을 생성하는 쓰레드에 부착되며 메시지큐를 통해 다른 쓰레드와 메시지를 주고 받으면서 통신 할 수 있는 것이지요.

그림으로 표현 하자면 아래와 같은 그림이 되겠죠? 
 

위의 그림 처럼 쓰레드끼리 핸들러 메시지를 통하여 서로 통신을 하게 됩니다.

마무리로 정리 하자면,

안드로이드에서는 UI 업데이트는 메인쓰레드에서만 할 수 있고 , 다른쓰레드 에서는 UI 업데이트 외의 필요한 작업을 할 수 있습니다. 그리고 다른쓰레드에서 UI 업데이트를 해야 할 경우 , 핸들러를 이용해서 메인쓰레드와 통신하여 UI 업데이트를 해주면 된다는 사실 입니다.

이로써 기본적으로 안드로이드에서 Thread의 개념을 살펴 봤구요ㅎ 다음 글에서는 본격적인 Thread 사용법에 대해서 알아보도록 하겠습니다.!!