Kotlin - Thread 정리

ether·2022년 4월 7일
0

android

목록 보기
5/8

Thread 란?

  • 쓰레드는 실행중인 프로그램 내부에서 또 다른 독립적인 실행 흐름을 생성하는 것을 뜻합니다.

Main Thread

Activity를 포함해 모든 컴포넌트가 실행되는 스레드, 오직 1개이다

  • 화면의 UI를 그립니다
  • UI와 상호작용하고, 이벤트 결과를 사용자에게 보여줍니다.

Background Thread

main thread가 하는 일 이외의 나머지를 모두 맡아서 처리하는 스레드

  • 예시 코드

    override fun run() {
               super.run()
               try {
                   while (true){
                       if (second >= playTime){
                           break
                       }
                       if (isPlaying){
                           sleep(50)
                           mills += 50
    
                           runOnUiThread {
                               binding.songProgressSb.progress = ((mills / playTime)*100).toInt()
                           }
                           if (mills % 1000 == 0f){
                               runOnUiThread {
                                  binding.songStartTimeTv.text = String.format("%02d:%02d",second / 60, second % 60)
                               }
                               second++
                           }
    
                       }
    
                   }
    
               }catch (e: InterruptedException){
                   Log.d("Song","쓰레드가 죽었습니다. ${e.message}")
               }
    }
}

}```

Thread는 동기적? 비동기적?

일반적으로 동기적인 것 같다. 더 알아봐야 할 듯!

Thread의 문제점

profile
Backend Developer

0개의 댓글