[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
- RTCCameraVideoCapturer
- Swift joined
- 2023년 회고
- removeLast()
- swift 고차함수
- swift (programmers)
- Swift ModernRIBs
- Swift RIBs
- Swift 프로그래머스
- Swift Leetcode
- Swift 알고리즘
- Class
- 원티드 프리온보딩
- Swift init
- Swift Error Handling
- Swift joined()
- swift protocol
- ios
- Combine: Asynchronous Programming with Swift
- swift property
- swift reduce
- RIBs tutorial
- CS 네트워크
- Swift inout
- iOS error
- Swift 내림차순
- Swift 프로퍼티
- Swift
- Swift final
- swift programmers
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함