비동기 (3) 썸네일형 리스트형 [iOS] DispatchQueue로 비동기 프로그래밍 DispatchQueue 작업항목의 실행을 관리하는 클래스 Queue에 추가된 작업항목은 시스템이 관리하는 스레드 풀에서 처리하고, 작업을 완료하면 스레드를 알아서 제거 일반 스레드 코드보다 쉽고, 효율적으로 코드를 작성할 수 있음 서버에서 데이터를 내려받을 때, 이미지나 동영상 등의 멀티미디어 처리와 같이 CPU 사용량이 많은 처리를 별도의 스레드에서 처리 ➡️ 메인 스레드로 결과를 전달해 화면에 표시 DispatchQueue 생성시 Serial이 기본, attribute를 따로 주면 Concurrent 유형으로 바꿀 수 있음 + OperationQueue: Operation을 OperationQueue에 제출하면 Concurrent operation 객체를 만들어 줌 DispatchQueue로 비동기.. [iOS] Grand Central Dispatch (GCD) Grand Central Dispatch 멀티코어와 멀티 프로세싱 환경에서 최적화된 프로그래밍을 할 수 있도록 애플이 개발한 기술 스레드 풀의 관리를 프로그래머가 아닌 운영체제에서 관리 ➡️ 프로그래머가 작업(task)를 비동기적으로 쉽게 사용할 수 있음 프로그래머가 실행할 작업을 생성하고, Dispatch Queue에 추가하면 GCD는 작업에 맞는 스레드를 자동으로 생성해서 실행하고, 작업이 종료되면 해당 스레드를 제거해 줌 DispatchQueue 작업을 연속적 / 동시에 진행하기는 하지만, 언제나 FIFO로 실행됨 Serial Dispatch Queue : 한 번에 하나의 작업만을 실행 ➡️ 해당 작업이 queue에서 제외되고 새로운 작업이 시작되기 전까지 기다림 Concurrent Dispatch.. [iOS] 비동기 프로그래밍과 동시성 프로그래밍 이해하고 시작하기 ! 프로그램 (Program) 보조기억장치에 저장된 실행코드 -> 생명이 없는 상태 프로세스 (Process) 하나의 프로그램이 메모리에서 실행되는 작업 단위 프로세스 관리는 운영체제에서 담당 스레드 (Thread) 하나의 프로세스 내에서 실행되는 작업흐름의 단위 보통 하나의 프로세스는 하나의 스레드를 가지고 있지만, 여러 스레드를 가지고 있기도 함 : 멀티스레딩 메인 스레드 : 프로그램이 실행될 때부터 동작하는 스레드 비동기(Asynchronous) 프로그래밍 작업 진행 중, 특정 작업에서 오랜 시간이 걸린다면 이를 기다리지 않고 바로 다음 작업을 실행할 수 있게 하는 방식 많은 시간이 필요한 작업은 별도의 공간에서 진행하도록 하고 메인 스레드에서는 바로 다음 코드를 실행 ➡️ 병렬 .. 이전 1 다음