일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- state
- arkit
- ar
- Animation
- CS
- stateobject
- gesture
- auth
- UIKit
- iphone
- Network
- environmentobjet
- combine
- dataflow
- swift
- Performance
- ios
- GCD
- WWDC
- 데이터최적화
- fullscreencover
- 달력
- 네트워크
- RxSwift
- realitykit
- SwiftUI
- withAnimation
- authentication
- Concurrency
- firebase
- Today
- Total
목록Concurrency (2)
XLOG
GCD VS Concurrency동기화의 대한 처리, 같은 데이터에 접근을 위해 GCD 의 경우 뮤텍스, 세마포어 등을 이용해야 하나, Concurrency 는 컴파일 에러를 발생시킨다.즉 안정성이 높다GCDworkItem 당 하나의 스레드를 할당,스레드는 결국 메모리에 할당, thread explosion., 메모리 오버헤드를 발생시킬 수 있다Context switching 이 발생하며, 블록된 스레드가 어떤 자원을 lock 하고 있을 때 데드락 발생ConcurrencyCPU 성능 이상의 스레드를 생성하지 않는다또한 await으로 중단됐을 때 컨텍스트 스위칭을 하는 것이 아닌 같은 스레드에서 다음 함수를 실행우선순위 역전Concurrency는 FIFO 가 아니기 때문에 우선순위가 높은 작업이 들어오게 ..
Async/await 은 concurrency programming 을 위한 swift 5.5 에 나온 기능이다. 기존에는 비동기 프로그래밍을 위해 GCD를 사용하며 completion handler를 많이 사용했다. 하지만 여기에 큰 문제점이 있다. thread explosion, deadlock, 가독성 등 개발자들은 조금 더 쉽고 안전하게 비동기프로그래밍을 하길 원한다. 그래서 채택하게 된 것이 async/await 이다. 우선 wwdc 영상에 나온 예시 코드를 먼저 살펴보자. 우선 위에 코드는 기존 completion handler 를 사용한 방법이다. wwdc21 Meet async/await in Swift 영상에서 나온 코드인데, 설명 중에 guard let ~ else { return } ..