• UI와 관련된 작업은 메인 스레드에서 구현
  • Mutable한 인스턴스는 스레드에 안전하지 않음(Thread-unsafe), 읽기 전용으로만 사용하다면 문제가 발생하지 않음
  • 프로퍼티 원자성
    • 어떤 프로퍼티를 두 개의 스레드가 참조하고 있는 상황에서 해당 프로퍼티 접근자 메서드가 atomic하지 않는다면 값에 대한 싱크가 맞지 않아 문제가 발생할 수 있음
    • Mutable한 인스턴스가 변경 중에 동시 접근할 경우가 없다면 nonatomic으로 사용해도 무방함
  • 스레드 관련 작업은 GCD를 통해 처리
    • GCD: Grand Central Dispatch
    • 클로저 블록 안에 있는 특정 작업을 큐에 올리고, 해당 큐를 특정 스레드에 실행하는 방식
  • 구조체가 파라미터로 전달될 때 스레드에 안전(Thread-safe)

참고 자료

스터디

  • Dispatch Queue
  • Quality of Service(QoS)
  • asyncAfter
  • 멀티 스레딩을 사용하는 이유
  • Queue에서 Thread로 넘기는 구조
  • 직접적으로 스레드를 관리하지 않고 Queue를 활용해 작업을 분산 처리