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 Runnable | extends Thread |
범위 | 단순히 run() 메서드만 구현하는 경우. | Thread 클래스의 기능 확장이 필요한 경우. |
설계 | 논리적으로 분리된 태스크(Task) 설계에 장점. | 태스크(Task)의 세부적인 기능 수정 및 추가에 장점. |
상속 | Runnable 인터페이스에 대한 구현이 간결. | Thread 클래스 상속에 따른 오버헤드. |
반응형