[iOS] GCD 심화 - 동시성과 관련된 문제들 (Race condition, Tsan, DispatchQueue barrier, Thread-safe, Deadlocks, Priority Inversion)
경쟁 상황 (Race Condition) 두개 이상의 Thread를 사용하면서, 동일한 메모리 접근 등으로 인해 발생할 수 있는 문제 아래 예제를 보시죠. var value = 777 func changeValue1() { sleep(2) value = 222 } func changeValue2() { sleep(2) value = 0 } queue.async { changeValue1() } queue.async { changeValue2() } print("(비동기)함수 실행값:", value) print에는 뭐가 찍힐까요 ? 777 이나와요. changeValue1,2 함수가 실행되고 기다리는동안 (sleep) 제일 아래 print 문이 실행되는거죠. 해결방법 (3가지) 1. TSan (Thread..
iOS
2022. 4. 8. 20:53
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Class
- swift reduce
- swift property
- Swift init
- Swift final
- swift (programmers)
- 원티드 프리온보딩
- Swift
- Swift 알고리즘
- 2023년 회고
- Swift inout
- iOS error
- Swift 내림차순
- Swift RIBs
- Swift Error Handling
- CS 네트워크
- RIBs tutorial
- ios
- Swift 프로퍼티
- Swift 프로그래머스
- RTCCameraVideoCapturer
- swift programmers
- removeLast()
- Swift joined()
- Combine: Asynchronous Programming with Swift
- Swift joined
- swift protocol
- swift 고차함수
- Swift Leetcode
- Swift ModernRIBs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함