내일배움캠프 iOS

iOS,Swift) TIL # 47 - 동기, 비동기, 동시성(Concurrency), GCD

yjuni22 2024. 12. 24. 20:09

 

쓰레드 (Thread)

  • 프로세스 내에서 작업을 수행하는 단위.
    • 한 개의 프로세스 내에서 여러개의 쓰레드가 동시에 작업을 수행할 수 있다.
    • 즉, 실행중인 iOS 앱을 프로세스 라고 표현하므로 iOS 앱이 실행중일때 여러가지 쓰레드가 동시에 일을 한다.
    • 크게 메인 쓰레드와 백그라운드 쓰레드로 구분할 수 있다.
    • 여러 개의 쓰레드를 가지고 동시에 작업을 하는 것을 멀티 쓰레딩이라고 한다.

동기 (sync)

  • 어떤 스레드에서 작업 A 를 처리하다가 새로운 작업 B 가 들어오면, 그 작업 B 을 수행하고 완료될때까지 기다렸다가 다시 작업 A 를 수행하는 작업 처리 방식.

→   직렬적으로 작업을 수행

 

비동기 (async)

 

  • 어떤 스레드에서 작업 A 를 처리하다 새로운 작업 B 가 들어오면, 다른 스레드에 작업 B 를 넘기고, 수행하고 있던 작업 A 는 멈추지 않고 병렬적으로 동시에 수행하는 작업 처리 방식. 작업 B 가 완료되면, 완료되었다는 결과와 소식을 전해받는다.

→   병렬적으로 작업을 수행

 

직렬 (Serial) vs 동시 (Concurrent)

  • 직렬: (보통 메인 스레드에서) 분산 처리 시킨 작업을 “다른 한개의 스레드에서” 처리하는 큐
  • 동시 : (보통 메인 스레드에서) 분산 처리 시킨 작업을 “다른 여러개의 스레드에서” 처리하는 큐

GCD

 

애플 공식문서에서 Grand Central Dispatch (GCD) 는 동시성 프로그래밍을 돕는 프레임워크라고 명시하고 있다. iOS, macOS, watchOS 등등에 사용할 수 있는 동시성 프레임 워크. 동시성 프로그래밍이란 여러가지 일을 동시에 작업하도록 하는 프로그래밍을 의미. 그 중에서 Swift 에서 사용하는 GCD 기술로 Dispatch Queue 가 있다. 즉 GCD 안에 DispatchQueue 가 포함되는 개념.

 

 

 

 

 

 

참고)

 

https://youtu.be/_dhLLWJNhwY?si=CFtG-NMHLJ4d5bJZ

 

 

https://sujinnaljin.medium.com/ios-%EC%B0%A8%EA%B7%BC%EC%B0%A8%EA%B7%BC-%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94-gcd-grand-dispatch-queue-1-397db16d0305

 

[iOS] 차근차근 시작하는 GCD — 1

이번엔 제발 이해하고 싶다 GCD..🥂

sujinnaljin.medium.com

 

https://www.inflearn.com/course/ios-concurrency-gcd-operation/dashboard

 

앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해 강의 | 앨런(Allen) - 인프런

앨런(Allen) | 동시성(Concurrency)프로그래밍 - iOS프로그래밍에서 필요한 동기, 비동기의 개념 및 그를 확장한 GCD 및 Operation에 관한 모든 내용을 다룹니다., 🙋🏻‍♂️ 자가 진단표   수업 후에는

www.inflearn.com