8. lazy var와 관련된 이슈들
- lazy var 의 경우 사용이 되는 시점에 메모리에 해당 값이 올라가는데 그 시간이 오래 걸리다 보니 여러 스레드에서 접근을 할 경우 여러 값들이 생성되는 문제가 발생할 수 있다.
- 예제는 아래와 같다.
- 위와 같이 lazy var 를 사용할 경우 Thread-safe 하지 못한 상황에 놓이게 되고 이를 해결하기 위한 방법은 아래와 같이 4가지가 있다.
- 위의 방법들을 통해서 어떻게 lazy var 문제를 해결하는지 예제는 아래와 같다.
- lazy var의 문제를 해결하는 방법 → 1. 시리얼큐 + sync (엄격한 Thread-safe)
- lazy var의 문제를 해결하는 방법 → 2. Dispatch Barrier 적용 (조금 더 효율적인 방법)
- lazy var의 문제를 해결하는 방법 → 3. 세마포어 적용
'IT > iOS' 카테고리의 다른 글
iOS Concurrency 프로그래밍, 동기/비동기 처리, GCD/Operation 에 대한 이해 (9) (0) | 2023.05.30 |
---|---|
iOS Concurrency 프로그래밍, 동기/비동기 처리, GCD/Operation 에 대한 이해 (7) (0) | 2023.05.30 |
iOS Concurrency 프로그래밍, 동기/비동기 처리, GCD/Operation 에 대한 이해 (6) (0) | 2023.05.30 |
iOS Concurrency 프로그래밍, 동기/비동기 처리, GCD/Operation 에 대한 이해 (5) (0) | 2023.05.30 |
iOS Concurrency 프로그래밍, 동기/비동기 처리, GCD/Operation 에 대한 이해 (4) (0) | 2023.05.30 |