메인스레드와 백그라운드스레드

w0308h 오늘 AM 10:15 5 0
w0308h Profile Image Level 9
2 #TIL

Main Thread

  • 오직 한 개만 존재!
  • UI와 관련된 작업은 반드시 Main Thread에 작성
  • Main Queue에서 실행됨
    • Main Queue는 Serial Queue. 한 번에 하나의 task만 실행함

Global Thread (Background Thread)

  • UI를 실행하는 데 영향을 줄 만한 코드들은 Global Thread에서 실행
  • iOS의 Framework는 모두 Background에서 구동됨
    • 가끔 Main Thread에 Delegate
    • 예시
      • 어플 내에서 음악을 실행하려고 한다.
      • 음악 재생에 필요한 Framework 작업은 모두 Background Thread에서 실행
      • 음악 재생 성공 시 Main Thread에 Delegate, Completion Handler 등을 통해 알림
  • 코드 실행이 오래 걸리는 작업은 직접 Background Thread에서 실행시켜주어야 함
댓글