이론 및 설명 보기 ↓
https://hanul0147.tistory.com/290
새로운 프로젝트를 만들면,
자동으로 매인액티비티가 생성되고, 앱이 실행되면 하나의 프로세스에서 처리...
=> 이벤트 처리 : 기능들도 동일 프로세스에서 처리..
대기시간이 긴 네트워크 요청등의 기능을 수행할 경우,
화면에 보이는 UI 멈춤상태가 될 때가 많다...
=> 이와 같은 문제 해결 방안으로 스레드를 사용...
즉, 하나의 프로세스에서 멀티 스레드 방식으로 사용...
스레드 : 동시 수행이 가능한 작업 단위.
멀티 스레드의 장점 : 동일 프로세스에서 메모리의 리소스를 공유하여
사용되기 때문에 자원 관리가 용이
단점: 동시에 동일한 리소스에 접근할 경우 데드락(DeadLock)현상이 발생.
= > 데드락(DeadLock) : 동시에 두 곳 이상에서 요청이 발생했을 경우,
어떤 것을 먼저 처리할 지 판단이 불가능한 현상.
만약 , 지연시간이 길어지는 앱의 경우,
오랜시간 작업하는 코드를 별도로 분리하여 나중에 UI에 적용하는 방법을 채택
서비스 : 백그라운드에서 처리 / 사용자에게 알림 / 브로드캐스트
스레드 : 동일프로세스에서 처리되기 때문에 결과 값 / UI 직접접근은 하지 못하기 때문에 핸들러를 통해 전달 해야 한 다
스레드 사용방법
1. Thread 클래스를 상속
new 클래스().start()
2. Runnable 인터페이스를 구현
new Thread(Runnable)
--------------------------------------------------------------------------------------------------------------------
actvity_main.xml
============================================================================
MainActivity.java
====================================================================
스레드 시작 버튼을 누를 시 value 값이 순차적으로 1 씩 올라간다 .
'프론트엔드 > 안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 스튜디오 : 스레드 애니메이션 만들기 (0) | 2022.02.05 |
---|---|
안드로이드 스튜디오 : 스레드 / 스레드 일정시간 후에 실행하기 (0) | 2022.02.05 |
안드로이드 스튜디오 : 스레드 / 핸들러 / ThreadObtainMessage / ThreadObtainMessageTest (0) | 2022.02.05 |
안드로이드 스튜디오 : KeyPad / KeyPad 닫기 버튼 (0) | 2022.02.05 |
안드로이드 스튜디오 : 시크바(SeekBar) 만들기 / 밝기 설정하기 (0) | 2022.02.04 |