Android/Android 일반

스레드 구현방법 (Thread클래스 상속, Runnable인터페이스 구현)

lipnus 2019. 3. 26. 13:07
반응형

스레드를 구현하는 두가지 방법


1. Thread클래스를 상속(extends) -> run() 오버라이드


2. Runnable인터페이스 구현(implements) -> run() 구현





1. Thread클래스 상속하는 방법

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)


val testThread = TestThread()
testThread.start()

}
}


class TestThread: Thread(){

override fun run() {
Log.d("SSS", "헬로우")
}
}





2. Runnable 인터페이스를 구현해서 하는 방법

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)


val tr = TestRunnable()
val thread = Thread(tr)
thread.start()

}
}


class TestRunnable: Runnable{

override fun run() {
Log.d("SSS", "요호호")
}
}






두 방법의 차이


항목Runnable 인터페이스 구현Thread 클래스 상속
코드implements Runnableextends Thread
범위단순히 run() 메서드만 구현하는 경우.Thread 클래스의 기능 확장이 필요한 경우.
설계논리적으로 분리된 태스크(Task) 설계에 장점.

태스크(Task)의 세부적인 기능 수정 및 추가에 장점.

상속Runnable 인터페이스에 대한 구현이 간결.Thread 클래스 상속에 따른 오버헤드.





반응형