상당히 메모리 제약이 큰 모바일 어플리케이션 환경에서 멀티 프로세싱은 필수적입니다. 하지만 그에 대한 관리를 하는 것은 정말 어려운데요... 그래서 GCD 애플에서 개발한 멀티코어, 멀티 프로세싱 환경에 최적화된 기술입니다. 기본적으로 스레드 풀의 관리를 프로그래머가 아닌 운영체제에서 관리하기 때문에 프로그래머가 태스크(작업)을 비동기적으로 쉽게 사용할 수 있습니다. 프로그래머가 실행할 태스크(작업)을 생성하고 Dispatch Queue에 추가하면 GCD는 태스크(작업)에 맞는 스레드를 자동으로 생성해서 실행하고 작업이 종료되면 해당 스레드를 제거합니다. Dispatch Queue DispatchQueue는 작업항목의 실행을 관리하는 클래스입니다. 대기열(Queue)에 추가된 작업항목은 시스템이 관리하는..
OperationQueue 란, 동시성(Concurrecny) 프로그래밍 을 위해 iOS 환경에서 지원하는 라이브러리 입니다. 동시성(Concurrecny) 프로그래밍에 대한 자세한 설명은 동시성, 비동기 프로그래밍 톺아보기 에서 확인해 주세요 ㅎㅂㅎ OperationQueue 이름을 살펴보면 Opertaion + Queue 인데, 말 그대로 대기열(Queue)에 추가한 동작(Operation) 의 실행을 관리하는 추상 클래스입니다. 동작에는 연산 객체(Operation Object)가 들어가게 되고, 이는 Foundation 프레임워크의 Operation 클래스 인스턴스입니다. 대기열(Queue)에서 동작(Operation) 관리 //연산 객체(Operation Object)를 대기열(Queue)에 추..
프로그래밍을 하면서 항상 부딪히는 주제이고, 어려운 주제인... 동시성 프로그래밍, 비동기 프로그래밍에 대해서 정리해보고자 합니다. 먼저 필요한 기본 개념들을 하나씩 짚어보고 갈게요..! 프로세서, 코어, 프로그램과 프로세스, 스레드 프로세서 프로그램을 수행하는 하드웨어 유닛 멀티 프로세서 : 한 컴퓨터가 여러 개의 프로세서를 갖는것. (듀얼 프로세서 : 2개의 프로세서) ex) CPU 코어 프로세서의 주요 연산회로 싱글코어, 듀얼코어 : 연산회로의 갯수 여러 개의 코어를 갖는 프로세서 또한 멀티 프로세서 프로그램, 프로세스 프로그램 : 보조기억 장치에 저장된 실행코드, active하지 않은 상태 프로세스 : 프로그램을 구동하여 프로그램 자체와 프로그램의 상태가 메모리상에서 실행되는 작업 단위, acti..