[iOS] main thread, global thread 메인 스레드(인터페이스 스레드), 글로벌 스레드(백그라운드 스레드)

Bibi·2022년 1월 26일
0

[iOS] main thread, global thread 메인 스레드(인터페이스 스레드), 글로벌 스레드(백그라운드 스레드)

https://babbab2.tistory.com/65?category=831129

Main Thread 메인 스레드 (Interface Thread 인터페이스 스레드)

  • iOS 에서 메인 스레드는 오직 한 개만 존재함
  • 메인 스레드는 인터페이스 스레드라고도 함 : UI와 관련된 작업은 반드시 메인 스레드에서 작성해야 하기 때문.
  • 메인 스레드는 Main Queue 에서 실행되는데, Main Queue 는 Serial Queue 이기 때문에, 한 번에 하나의 작업만 실행함.
    • 따라서 UI에 영향을 줄 만한 코드들은 메인 스레드가 아닌 아래의 Global Thread 로 실행해야 함.

Global Thread 글로벌 스레드 (Background Thread 백그라운드 스레드)

  • 코드 실행이 오래 걸리는 작업은 모두 글로벌 스레드(= 백그라운드 스레드)에서 실행시켜 줘야 함.
    • 왜? 메인 스레드에서 실행하면 Main Queuer가 Serial Queue 이므로 어떤 작업을 하는 동안 다른 작업을 할 수 없어 화면이 멈춰 있기 때문.
  • iOS의 프레임워크들 역시 모두 백그라운드 스레드에서 실행됨.
    • 필요할 때만 메인 스레드에 손을 뻗는(Delegate) 구조임

0개의 댓글