안드로이드 공부/ Thread
5847 단어 안드로이드 프로그래밍안드로이드 프로그래밍
Thread
- 프로세스(Process) 내에서 "순차적으로 실행되는 실행 흐름"의 최소 단위.
- 작업 흐름의 최소 단위
📎 안드로이드에서의 Thread
하나의 Thread는 하나의 작업만 할 수 있어서 앱에 Main Thread만 존재한다면 동시에 여러 작업을 수행할 수 없고, 만약 아주 긴 작업을 해야한다면 그 이후의 작업들은 그 시간동안 대기해야하는 비효율이 발생할 수 있기 때문에 필요
1. Main Thread
- 프로세스가 시작되면 가장 최초로 생성되는 Thread
- UI와 관련된 모든 작업은 Main Thread에서 이루어져야 하기 때문에
UI Thread라고도 불린다. - 단일 스레드이기 때문에 주어진 작업들을 순차적으로 수행한다.
- 절대 앱 실행 도중에 중지되어서는 안된다.
- 네트워크, DB 관련된 작업을 할 수 없다.
📎 Thread 만들기
1. Thread 객체를 생성할 때 필요한 Runnable 객체 만들기
- 이 Runnable 객체에서 오버라이딩 하는 run()함수에는 Thread에서 수행해야하는 작업 코드가 들어간다.
val runnable: Runnable = object : Runnable{
override fun run() {
//작업 코드
Log.d("thread", "Thread1 is made")
}
}
2. Thread 객체 생성
- 1번에서 만든 Runnable 객체를 파라미터로 넘겨준다.
val thread: Thread = Thread(runnable)
3. Thread 시작
thread.start()
❗ 익명개체로 간단하게 만들어서 실행하기
Thread(object:Runnable{
override fun run() {
Log.d("thread", "Thread2 is made")
}
}).start()
❗ 람다식으로 가장 간단하게 만들어서 실행하기
Thread {
Thread.sleep(2000) // 해당 Thread를 3초동안 잠재움
Log.d("thread", "Thread3 is made")
}.start()
worker thread에서 UI를 변경하고 싶다면
- runOnUiThread를 사용한다.
Thread {
Thread.sleep(2000)
Log.d("thread2", "Thread3 is made")
runOnUiThread {
button.setBackgroundColor(getColor(R.color.yellow))
}
}.start()
Author And Source
이 문제에 관하여(안드로이드 공부/ Thread), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yellowsummer/안드로이드-공부-Thread저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)