본문 바로가기
🍎iOS프로그래밍/오늘의 공부

iOS - GCD(Grand Central Dispatch)알아보기

by 둥둥동동# 2022. 7. 12.
728x90

 

GCD 알아보기

 

GCD를 알아보기 전 여러 포스팅을 보았었는데요 대부분이 GCD를 Dispatch Queue와 같은것으로 설명하고 있었습니다

GCD와 Dispatch Queue가 같은 것인지 확인하기 위해 애플 공식문서를 확인해 보았습니다 

 

"Dispatch, also known as Grand Central Dispatch (GCD), contains language features, runtime libraries, and system enhancements that provide systemic, comprehensive improvements to the support for concurrent code execution on multicore hardware in macOS, iOS, watchOS, and tvOS."

-애플 공식문서-

 

GCD(Grand Central Dispatch)는 다중 코어 프로세서 및 기타 대칭 다중 처리 시스템이 있는 시스템에 대한 응용 프로그램 지원을 최적화하기 위해 Apple Inc.에서 개발한 기술입니다.

- 위키피디아 - 

 

 

요약하자면 다중 쓰레드 환경에서 효율적으로 작업을 분배하기 위한 시스템이라고 정리할 수 있습니다

즉, DispatchQueue는 GCD는 같은게 아니라 GCD의 개념이 적용된 동시성 프로그래밍을 지원하는 요소라고 할 수 있겠네요

 

 

GCD == Dispatch

 

애플문서에 따르면 Dispatch(GCD라고도 알려진)는 쓰레드 관리를 가장 쉽게, 효율적으로 관리할 수 있는 방법으로 소개되고 있습니다

하나의 응용프로그램이 각기 다른 코어 수를 가진 컴퓨터 환경에서 동작할 것을 고려해 프로그래밍 한다면 정말 힘들것 같습니다

다양한 환경에서 효율적으로 작업(Task)들을 관리하기 위한 방법으로 Dispatch 시스템이 개발되었습니다

 

 

그럼 이 Dispatch를 어떻게 사용할 수 있느냐?

1.프로그래머가 Queue에 작업을 블록으로 정의합니다 

2. Queue에 들어간 작업들은 프로그래머가 지정한 방식(동기, 비동기, 큐타입 등)에 따라 적절한 쓰레드에 작업이 분배됩니다

 

 

Dispatch의 특징

1. 작업을 블럭으로 정의해 Queue에 넣는 것만으로 멀티 쓰레딩 환경을 만들 수 있다

2. 작업을 그룹화하여 모니터링 및 완료되었을 때의 동작을 정의할 수 있습니다

3. DispatchSemaphore로 동시에 수행 가능한 Task를 정의할 수 있습니다

 

 

 

 

참고자료

 

https://developer.apple.com/documentation/DISPATCH

 

Apple Developer Documentation

 

developer.apple.com

 

https://en.wikipedia.org/wiki/Grand_Central_Dispatch

 

Grand Central Dispatch - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Technology developed by Apple Inc Grand Central Dispatch (GCD or libdispatch), is a technology developed by Apple Inc. to optimize application support for systems with multi-core proce

en.wikipedia.org

 

728x90

댓글