안드로이드

UMC 안드로이드 스터디 4주차

조쿼카 2022. 4. 4. 15:53

강의 출처 : 컴공선배

 

Thread

프로그램 - 어떤 작업을 위해 실행할 수 있는 파일

프로세스 - 컴퓨터에서 연속적으로 실행되고 있는 프로그램

 

Thread

- 프로세스 내부에서 일을 하는 주체

- 실, 흐름(사전적 정의)

 

Process는 기본적으로 Main thread 라고 불리는 한개의 쓰레드를 가지고 있다.

동시작업 = Multi Thread : 하나의 프로세스 내부에서 동시에 몇가지 일을 수행하는 것

동시작업이 수행되려면 prcoess 내부에 여러개의 thread가 있어야 한다.

 

- 동기 방식 (Single thread): 하나의 스레드만 가지고 일을 처리

- 비동기 방식 (Multi thread)

: 멀티 스레드로 여러 스레드를 동시 작업 처리한다.

요청이 들어와도 결과를 기다리지 않고 계속 요청을 받는다.

결과를 간접적으로 전달한다.

일을 각자 수행한다.

동시에 처리하는 것이 아니라 쪼개서 조금씩 수행(context switching)하기 때문에 동시에 처리하는 것처럼 보이는 것이다.

 

-> 멀티 스레드를 한다고 해서 속도가 빨라지는 것은 아니다.

 

- synchronize 된다.

 

안드로이드에서의 Thread

Main Thread : View Control

Worker Thread : 이외의 작업들, View Control 안됨 -> 시간 많이 안걸리도록 함 , worker thread에 무거운 일을 맡긴다.

 


[실습]

이미지를 2초마다 바꾸는 실습

-> onCreate()함수 내에서 실행하면 안됨 : 메인 액티비티에서 이미지를 바꾸는 일을 하면 버튼 클릭 등 다른 일을 수행하지 못한다. 따라서 이미지 바꾸는 일은 Worker Thread에서 진행해야한다.

 

- Main Thread에서만 뷰 렌더링을 할 수 있다. -> worker thread에서 뷰 렌더링을 시도하면 오류가 난다.

-> 해결방법 :

1. Handler 만들어주기

handler.post{  //handler를 통해서 아래 코드의 내용들을 메인 스레드로 전달하여 거기서 실행시켜준다.
    binding.iv.setImageResource(image)

    Thread.sleep(2000)
}

2. runOnUiThread 사용

runOnUiThread{
    binding.iv.setImageResource(image)
}
Thread.sleep(2000)

 

 

 

스플래쉬 화면 만들기

1. handler 사용하기

2. 시작 테마에서 style 지정

'안드로이드' 카테고리의 다른 글

Retrofit 공부 - recyclerView실습  (0) 2022.04.05
UMC 안드로이드 스터디 4주차  (0) 2022.04.05
Retrofit 공부  (1) 2022.03.30
UMC 안드로이드 스터디 3주차  (0) 2022.03.28
UMC 안드로이드 스터디 2주차  (0) 2022.03.22