쓰레드 (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://www.inflearn.com/course/ios-concurrency-gcd-operation/dashboard
'내일배움캠프 iOS' 카테고리의 다른 글
UIKit) TIL # 49 넷플릭스 클론 강의 (1) | 2024.12.27 |
---|---|
UIKit) TIL # 48 넷플릭스 클론 강의 (0) | 2024.12.26 |
iOS,Swift) TIL # 46 앱 개발 심화 강의 - 의존성 주입, MVVM (2) | 2024.12.23 |
UIKit) TIL # 45 팀 프로젝트 - 영화상영정보 발표 (0) | 2024.12.20 |
UIKit) TIL # 44 팀 프로젝트 - 영화상영정보 마무리 (0) | 2024.12.19 |