iOS & Swift 공부 - Grand Central Dispatch

김영채 (Kevin)·2021년 3월 9일
0

iOS & Swift

목록 보기
87/107
post-thumbnail
  • 멀티코어와 멀티프로세싱 환경에서 최적화된 프로그래밍을 할 수 있도록 애플이 개발한 GCD 기술

→ 프로그래머가 실행할 테스크 (작업)을 생성하고 Dispatch Queue 에 추가하면, GCD 는 테스크 (작업)에 맞는 Thread 를 자동으로 생성해서 실행하고 작업이 종료되면 해당 Thread 를 종료한다.

( Dispatch Queue 의 종류 )

Operation Queue ( 연산 대기열 )


  • Concurrent Dispatch Queue 와 동일하게 동작하며, Operation Queue 클래스에 의해 구현된다.
  • Dispatch Queue 는 FIFO 순서로 작업을 실행한다
  • 그러나 Operation Queue 는 꼭 FIFO 순서는 아니고, 다른 요인들이 함께 고려된다.
  • Dispatch Queue 와 Operation Queue 는 매우 유사한 클래스

GCD & Operation Queue


차이점:

  • Operation Queue 에서는 동시에 실행할 수 있는 Operation 의 최대 수를 지정 가능 (max)
  • Operation Queue 에서는 KVO (Key Value Observing)을 사용할 수 있는 많은 property 가 있음
  • Operation Queue 에서는 Operation 을 일시 중지, 다시 시작, 및 취소 가능!

언제 사용?

Operation Queue :

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

→ KVO 를 사용해 작업 진행 상황을 감시하는 방법이 필요할 때도 적합

Grand Central Dispatch :

→ 작업이 복잡하지 않고 간단하게 처리하거나 특정 유형의 시스템 이벤트를 비동기적으로 처리할 때 적합

→ ex. 타이머, 프로세스 등

profile
맛있는 iOS 프로그래밍

0개의 댓글