Concurrency Swift Concurrency는 비동기 프로그래밍을 지원하기 위한 도구로, 코드를 간결하고 효율적으로 작성할 수 있게 도와줍니다. 이 기능은 async와 await 키워드를 사용하여 비동기 작업을 선언하고 처리할 수 있습니다. Swift Concurrency의 동작 방식에 대해 자세히 알아보면 다음과 같습니다. Structured Concurrency: Swift Concurrency는 구조적 동시성(Structured Concurrency)을 지원합니다. 이는 비동기 작업 간의 종속성을 명시적으로 관리하여 프로그램의 실행 흐름을 제어하는 방법입니다. async let 구문을 사용하여 여러 비동기 작업을 동시에 실행하고, await를 사용하여 해당 작업들이 완료될 때까지 대기할 수..
DispatchQueue 앱의 메인스레드나 백그라운드 스레드에서 순차적serially이거나 동시concurrently에 작업 실행을 관리하는 객체입니다. class DispatchQueue : DispatchObject DispatchQueue Overview 디스패치 큐는 블록객체 형식으로 작업을 제출하는 FIFO 대기열입니다. 디스패치 큐는 작업을 serially또는 concurrently 실행합니다. 디스패치 큐에 제출된 작업은 시스템에서 관리하는 스레드 풀에서 실행됩니다. 앱의 매인 스레드를 나타내는 디스패치 큐를 제외하고 시스템은 어떤 스레드를 사용하여 작업을 실행할지 보장하지 않습니다. 작업 항목(Work Item)을 동기synchronously, 비동기asynchronously로 계획할 수 ..
Dispatch 시스템에서 관리하는 디스패치 큐에작업을 전달하여 멀티코어 하드웨어에서 동시에 코드를 실행 Overview GCD라고도 하는 디스패치는 macOS, iOS, watchOS 및 tvOS의 멀티코어 하드웨어에서 동시 코드 실행을 지원하기 위한 체계적이고 포괄적인 개선을 제공하는 언어 특징, 런타임 라이브러리, 시스템 향상을 포함합니다. BSD서브시스템, 코어파운데이션, 코코아APIs는 모두 향상된 기능을 사용하여 시스템과 애플리케이션을 보다 빠르고 효율적으로, 향상된 응답성으로 실행할 수 있도록 확장됐습니다. 하나의 애플리케이션이 여러 코어를 효과적으로 사용하는 것이 얼마나 어려운지 생각해보세요. 컴퓨팅 코어 수가 다른 컴퓨터 또는 해당 코어를 위해 경쟁하는 여러 애플리케이션이 있는 환경에서 ..