티스토리 뷰

iOS

[iOS] Dispatch 프레임워크 알아보기

Kim_Baechu 2021. 1. 18. 17:17

Dispatch

시스템에서 관리하는 디스패치 큐에작업을 전달하여 멀티코어 하드웨어에서 동시에 코드를 실행

 

 

Overview

GCD라고도 하는 디스패치는 macOS, iOS, watchOS 및 tvOS의 멀티코어 하드웨어에서 동시 코드 실행을 지원하기 위한 체계적이고 포괄적인 개선을 제공하는 언어 특징, 런타임 라이브러리, 시스템 향상을 포함합니다.

 

BSD서브시스템, 코어파운데이션, 코코아APIs는 모두 향상된 기능을 사용하여 시스템과 애플리케이션을 보다 빠르고 효율적으로, 향상된 응답성으로 실행할 수 있도록 확장됐습니다.

하나의 애플리케이션이 여러 코어를 효과적으로 사용하는 것이 얼마나 어려운지 생각해보세요.

컴퓨팅 코어 수가 다른 컴퓨터 또는 해당 코어를 위해 경쟁하는 여러 애플리케이션이 있는 환경에서 이 작업을 수행하는 것은 말할 것도 없습니다.

시스템 수준에서 운영되는 GCD는 모든 실행 중인 애플리케이션의 요구를 더 잘 수용하여 균형있게 사용가능한 시스템 리소스에 매칭해줄 수 있습니다.

 

Queues and Tasks

class DispatchQueue 

- 앱의 메인스레드나 백그라운드 스레드에서 순차적이나 동시에 작업을 실행하는 것을 관리하는 객체입니다.

class DispatchWorkItem 

- 수행하고자 하는 작업에 캡슐화를 해서 컴플리션 핸들이나 실행 종속성을 연결합니다.

class DispatchGroup

- 하나의 단위로 모니터링하는 작업 그룹입니다.

 

Quality of Service

struct DispatchQoS

- 서비스의 퀄리티, 실행 우선순위를 정합니다.

 

System Event Monitoring

class DispatchSource

- 파일시스템 이벤트, 타이머, UNIX 신호와 같은 low-level 시스템 이벤트 처리를 조정하는 객체입니다.

class DispatchIO

- 스트림 기반 또는 랜덤 액세스 semantics를 사용하여 파일 descriptor의 작업을 관리하는 객체입니다.

struct DispatchData

- 메모리 기반 데이터 buffer를 관리하고 인접한 메모리 블럭에 드러내는 객체입니다.

struct DispatchDataIterator

디스패치 데이터 객체의 컨텐츠에 대한 byte-by-byte iterator

 

Task Synchronization

class DispatchSemaphore

- 전통적인 카운팅 수기신호를 통해 여러 실행 컨텍스트에서 리소스에 대한 액세스를 컨트롤하는 객체입니다.

 

Time Constructs

struct DispatchTime

- default clock에 대한 상대적인 시간 point (nanosecond)

struct DispatchWallTime

- wall clock에 대한 절대적인 시간 point (microsecond)

enum DispatchTimeInterval

- seconds, millisconds, microseconds, nanoseconds

enum DispatchTimeoutResult

- 지정한 시간 전에 디스패치 작업이 완료되었는지 여부를 나타내는 결과 값입니다.

typealias dispatch_time_t

- 시간을 추상적으로 표현

var DISPATCH_WALLTIME_NOW 

- 현재 시간

 

Dispatch Objects

class DispatchObject

- 디스패치 타입의 기본 클래스

enum DispatchPredicate

- 지정된 실행 컨텍스트 내에서 평가할 논리적 조건

func dispatchPrecondition(condition() -> DispatchPredicate)

- 추가 실행에 필요한 디스패치 조건을 확인합니다.

 

 

developer.apple.com/documentation/DISPATCH

 

Apple Developer Documentation

 

developer.apple.com

 

댓글
공지사항