
147
7
장
-
기본 스레드의 생명주기 관리
7.2
스레드 관리
각 응용프로그램은 스레드의 사용과 관리 방법을 책임진다. 응용프로그램은 사용할 스레드의
수, 재사용하는 방법, 인터럽트하는 시기, 화면 회전 동안 스레드가 유지되어야 하는지 여부 등
을 결정해야 한다.
스레드의 생명주기 전반에 걸쳐 정의와 시작, 유지, 취소라는
3
단계의 스레드 특성을 구현할 수
있다.
7.2.1
정의와 시작
스레드, 구성요소, 이들의 표현체인 각 객체의 생명주기는 서로 일치하지 않는다(
128
쪽 ‘생명주
기 불일치’ 참조). 스레드는 여러 구성요소의 생명주기보다 오래 살 수 있고, 재사용되지 않는 경
우에도 오래된 구성요소 객체를 메모리에 유지할 수 있다. 스레드가 정의되고 시작되는 방식은
메모리 누수의 위험과 크기 모두에 영향을 미친다. 지금부터 안드로이드에서 작업자 스레드를
정의하고 시작하는 가장 일반적인 방법과 각각의 의미를 살펴본다.
예제는 외부 클래스(
AnyObject
)와
UI
스레드에서 호출하는 메서드(
anyMethod
)에서 시작되
는 스레드를 다룬다. 예제는 일반적이고 간단한 코드로 작성되었다.
익명 내부 클래스
우선 내부 클래스의 속성을 보자. 코드 예제는 짧은 구문 형태지만 모든 중첩된 지역 클래스에
같은 원리가 적용되기 때문에 익명 내부 클래스를 활용한다.
public class ...