GCD, DispatchGroup / Operation vs GCD

BINGBING🐨·2022년 5월 23일
0

iOS CS

목록 보기
5/6

DispatchQueue

작업을 담고있는 대기열(First In First Out)방식으로 실행

Quality of Service (QoS)

Concurrent하게 작업을 처리하면서 작업의 우선 순위를 지정하기 위해 사용합니다.

qos우선순위

  • userInteractive : 중요도가 높고 즉각적인 반응이 요구되는 작업으로 즉각적으로 작업이 처리됩니다. UI업데이트나 이벤트 핸들링 등에 사용됩니다.
  • userInitiated : 빠른 결과를 기대할 때 사용하는 QoS
  • default : 기본값, 일반적인 작업
  • utility : 사용자가 앱을 계속 사용하지 못하게 막지 않는 작업 (계산, I/O, 네트워킹 등) 시간이 다소 오래 걸리는 작업에 사용
  • background : 앱이 백그라운드에서 실행중일때 진행되는 작업

Operation Queue

비동기적으로 실행되어야 하는 작업을
객체 지향적인 방법으로 사용합니다.

Operation

작업과 관련된 코드와 데이터를 나타내는 추상 클래스

Operation Queue 특징

  • 동시에 실행할 수 있는 Operation의 최대 수를 지정할 수 있음
  • Operation을 일시 중지, 다시 시작 및 쉬로를 할 수 있음
  • KVO를 사용할 수 있는 많은 프로퍼티 존재 (Objc 문법 중 변수에 코드를 붙여 코드가 실행되도록 함(willset,didSet과 유사하지만 타입 정의 밖에서 observe 추가)

GCD(Grand Central Dispatch)

멀티 코어와 멀티 프로세싱 환경에서
최적화된 프로그래밍을 할 수 있도록 만든 언어요소, 런타임 라이브러리
작업에 맞는 스레드를 자동으로 생성, 실행하고 작업이 종료되는 스레드 제거
Operation 특징을 사용할 수 없음
프로그래머가 작업을 비동기적으로 간편하게 사용할 수 있도록 해줌

참고 출처

[Swift]GCD(Grand Central Dispatch) - Dispatch Queue

GCD vs Operation Queue

profile
iOS Developer

0개의 댓글