여러 스레드에 작업 보내기

장기간 실행되고 데이터 집약적인 작업의 속도와 효율성은 여러 스레드에서 실행되는 작은 작업으로 분할할 때 개선되는 경우가 많습니다. 프로세서(코어)가 여러 개인 CPU를 갖춘 기기에서 시스템은 각 하위 작업이 실행될 때까지 기다리지 않고 스레드를 병렬로 실행할 수 있습니다. 예를 들어 미리보기 이미지 화면에 표시하려고 여러 이미지 파일을 디코딩하는 작업은 별도의 스레드에서 각각 디코딩할 때 훨씬 빠르게 실행됩니다.

이 가이드에서는 스레드 풀 개체를 사용하여 Android 앱에서 여러 스레드를 설정하고 사용하는 방법을 보여줍니다. 또한 스레드에서 실행할 코드를 정의하는 방법과 이러한 스레드 중 하나와 UI 스레드 간에 통신하는 방법도 보여줍니다.

과정

스레드에서 실행할 코드 지정

Runnable 인터페이스를 구현하는 클래스를 정의하여 별도의 Thread에서 실행할 코드를 작성하는 방법을 알아봅니다.

여러 스레드의 관리자 만들기

Thread 개체의 풀 및 Runnable 개체의 대기열을 관리하는 개체를 만드는 방법을 알아봅니다. 이 개체를 ThreadPoolExecutor라고 합니다.

스레드 풀 스레드에서 코드 실행

스레드 풀의 스레드에서 Runnable을 실행하는 방법을 알아봅니다.

UI 스레드와 통신

스레드 풀의 스레드에서 UI 스레드로 통신하는 방법을 알아봅니다.

추가 정보

Android에서 다중 스레드 작업에 관한 자세한 내용은 다음 가이드를 참조하세요.

샘플 앱

이 가이드의 개념을 시험해 보려면 ThreadSample을 다운로드하세요.