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