
Swift Concurrency async / awiat

GCD와 Swift Concurrency 성능 분석

Swift Concurrency에서 참조 관리 Swift Concurrency에서 비동기 작업은 Task 단위로 실행된다. 이때, Task를 생성하면서 수행할 비동기 작업을 클로저로 전달하게 되는데 이때도 마찬가지로 외부의 참조가 필요한 경우 강한 참조를 하게 된다.

이번 포스트는 Swift Concurrency의 디자인 철학 중 하나인 Structured Concurrency에 대한 내용을 알아보려고 한다. Swift Concurrency의 등장으로 기존에 사용하던 Completion Handler를 async/await문법으로

Swift Concurrency에서 async/await를 사용하면, await 지점에서 현재 스레드의 제어권을 시스템에 넘기고 다른 작업이 실행될 수 있도록 한다. 비동기 작업이 완료되면 다시 해당 함수의 실행을 재개하며, await 이후의 코드를 이어서 수행한다.만

기존 class 타입은 서로 다른 비동기 컨텍스트에서 실행될 때, counter에 동시에 접근하게 되면, 값이 첫 번째의 접근에서도 value 값은 0, 두 번째 접근에서도 value 값이 0이 되어 첫 번째와 두 번째의 결과 모두 1이 될 수 있다.이러한 데이터 경합