AsyncTask vs Thread vs Service 차이
2020. 12. 4. 15:01ㆍ모바일/Android_Java
Thread
- 작업을 동시에 실행할 수 있는 클래스이다. Thread 를 상속받거나, Runnable 을 구현하여 사용할 수 있다. 쓰레드는 일반적으로 긴 작업을 수행하는 데 사용한다. 쓰레드는 수동으로 관리해야 하기 때문에 관리가 어렵고 코드를 읽기 어려워 질 수 있다는 단점이 있다.
- 하나의 독립적인 실행 흐름
사용처
- 중간 또는 많은 양의 데이터가 포함 된 네트워크 작업 (업로드 또는 다운로드)
- 백그라운드에서 실행해야하는 높은 CPU 작업
- GUI 스레드와 관련된 CPU 사용량을 제어하려는 모든 작업
Service
서비스는 백그라운드에서 실행시간이 긴 작업을 수행하며, 사용자 인터페이스를 제공하지 않는 어플리케이션 구성요소이다. UI 가 없는 작업이긴 하지만, 작업시간이 너무 길지 않아야 하며, 긴 작업이 필요하다면 서비스 내에서 스레드를 사용해야 한다.
AsyncTask
비동기 작업을 백그라운드 스레드에서 실행하고 결과가 UI 스레드에 게시되게 하는 데 사용되는 클래스이다. 스레드나 핸들러를 조작하지 않고도 UI 스레드를 적절하고 쉽게 사용할 수 있다. 메인 스레드와 통신해야 하는 작업에 사용하며, 핸들러와 달리 무조건 메인 스레드에서 생성하고 실행해야한다.
사용처
- 많은 데이터를 다운로드 할 필요가없는 간단한 네트워크 작업
- 몇 밀리 초 이상 걸릴 수있는 디스크 바운드 작업
'모바일 > Android_Java' 카테고리의 다른 글
Scrollview 스크롤 위치 계산, 원하는 위치로 이동, child isvisible, scrollTo, smoothScrollTo (0) | 2020.12.16 |
---|---|
mac에 jdk 1.8 / 8 설치하기 (0) | 2020.12.09 |
Non-blocking I/O(NIO) (0) | 2020.11.20 |
Socket 소켓, Data Stream (0) | 2020.11.17 |
NavigationView onNavigationItemSelected not Working, 반응 없음 현상 (0) | 2020.11.15 |