Thread
한개의 프로세스내에서 동시에 실행되는 작업의 단위를 나타냄.
- Thread는 동시 실행하는 프로그래밍 기법을 추상화 한 것.
- Thread는 언제나 프로세스 내에서 종속적으로 실행됨.
- Thread는 Process의 자원을 공유 하지만 독립적으로 실행될 수 있음.
- Thread 내에서 생성한 자원은 해당 Thread에 종속적임!!
Main Thread
안드로이드의 메인스레드는 UI를 실행시키고, 사용자와의 인터랙션을 위한 용도로 사용.
-> UI 수정 작업은 무조건 메인스레드에서 해야한다!!
- 앱이 실행되면 Process가 생성되고 Process는 VM(ART)을 실행
- Android는 Process가 생성될 때 Thread가 하나 생성되는데 이것이 Main Thread
Multi Thread
한개의 프로세스 내에서 동시에 2개 이상의 Thread가 실행되는 상태를 멀티스레드라고 함.
- 리눅스 및 자바 언어(ART)를 사용하는 안드로이드는 기본적으로 멀티 스레드를 지원함.
Multi Tasking(=Process)
한 CPU에서 여러개의 Multi-Tasking이 실행될 수 있음.
Process는 스레드와 달리 독립적인 자신만의 메모리 공간을 가지고 있음!!
결론
안드로이드는 사용자와의 상호작용을 다루는 UI는 Main-Thread에서 처리하고, 그 외 시간이 소요되는 작업 또는 바로 실행되지 않는 작업은 Back Ground Thread로 처리 됨