ios에서 멀티 스레딩 을 위한 API: NSOperation, GCD
NSOperation은 GCD보다 약간의 오버헤드가 더 발생되고 느리지만 GCD는 직접 처리해야 하는 작업들을 지원 하고 있기 때문에 (KVO관찰(key-velue observer), 작업취소 등등) 감수하고 사용할만하다.
- NSOperation: Obj-C 기반으로 만들어진 high-level API
- NSOperationQueue
- operation Queue에 추가된 작업은 작업이 완료될 때까지 대기열에 남아 있다. 작업이 추가된 후에는 대기열에서 직접 제거할 수 없기 때문에 모든 작업이 끝나지 않은 상태에서 Operation queue를 중지시키면 메모리 릭이 발생할 수 있다
- 하이 레벨이기 때문에 GCD 에서할 수 없는기능(ex: 재개, 취소, 중지)을 제공하지만 구현이 복잡하고 무겁다
- NSOperationQueue
- GCD(Grand Central Dispatch): C 기반의 low-level API
- GCD Queue
- 복잡하지않고 가볍기 때문에 매우 간단한 동시성을 사용할 수 있다
- GCD Queue
'앱 > iOS(Swift)' 카테고리의 다른 글
[스위프트] Global DispatchQueue 의 Qos (0) | 2022.01.12 |
---|---|
[스위프트] GCD API 동작 방식과 필요성 (0) | 2022.01.12 |
[스위프트] Bounds, Frame 차이점 (0) | 2022.01.12 |
[스위프트] 프로퍼티 감시자 (0) | 2022.01.12 |
[스위프트] Array, Tuple, Set, Dictionary (0) | 2022.01.12 |
댓글