일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스위프트
- Xcode
- uitableview
- swiftUI
- MVVM
- 리펙터링
- SWIFT
- Refactoring
- RxCocoa
- swift documentation
- combine
- Clean Code
- ios
- 클린 코드
- 리펙토링
- map
- Protocol
- rxswift
- uiscrollview
- UITextView
- collectionview
- Observable
- Human interface guide
- tableView
- UICollectionView
- 애니메이션
- clean architecture
- HIG
- ribs
- 리팩토링
- Today
- Total
목록thread safe (6)
김종권의 iOS 앱 개발 알아가기
NSMapTable 개념 key-value쌍으로 구송하는 컬렉션 타입 중 하나인 Dictionary와 유사하지만 memory 관리를 더욱 디테일하게 처리가 가능한 클래스 딕셔너리는 value type이지만 NSMapTable은 class타입이므로 reference type 딕셔너리는 key-value쌍으로 value에 object를 넣으면 strong reference로 잡히지만, NSMapTable은 통해 weak 설정이 가능 NSMapTable은 멀티 스레드 환경에서도 안전하게 사용할 수 있는 thread safe 속성도 가지고 있는 장점이 존재 NSMapTable로 메모리 캐싱 구현 NSMapTable의 Value 타입에 사용할 class 타입 CachedObject 정의 하나와 NSMapTable..
Critical Section(크리티컬 섹션) 한 번에 둘 이상의 스레드가 접근하면 안되는 공유 자원 영역 ex) 멀티 스레드로 처리하는 Data가 있을 때 set이 동시에 이루어지면 안되므로 이 구역을 Critical Section이라고 명칭 NSLock, NSRecursiveLock 개념 NSLock 하나의 스레드 혹은 둘 이상의 스레드가 lock()이 있는 다음 코드 부분을 접근하지 못하도록 상호배제하는 방법 critical section에 들어갈때 lock()을 걸고 작업을 끝내면 unlock() 호출하는 방법 NSRecursiveLock 둘 이상의 스레드가 lock()이 있는 다음 코드 부분을 접근하지 못하도록 상호배제하는 방법 NSLock과 NSRecursiveLock 차이 NSRecursiv..
1. Concurrent Programming - NSLock, DispatchSemaphore 사용 방법 2. Concurrent Programming - DispatchSemaphore로 코틀린의 CompletableDeferred 구현방법 3. Concurrent Programming - DispatchQueue의 serial, concurrent, async, sync 이해하고 사용하기 4. Concurrent Programming - Thread Safe Array 구현방법 (DispatchQueue의 barrier 사용) 5. Concurrent Programming - OperationQueue로 동적으로 작업 추가, 취소하는 모듈 구현방법 Operation Queue 동시성 프로그래밍에서 ..
1. Concurrent Programming - NSLock, DispatchSemaphore 사용 방법 2. Concurrent Programming - DispatchSemaphore로 코틀린의 CompletableDeferred 구현방법 3. Concurrent Programming - DispatchQueue의 serial, concurrent, async, sync 이해하고 사용하기 4. Concurrent Programming - Thread Safe Array 구현방법 (DispatchQueue의 barrier 사용) 5. Concurrent Programming - OperationQueue로 동적으로 작업 추가, 취소하는 모듈 구현방법 * 해당 글을 이해하기 위해서는 이전 포스팅 글(D..
1. Concurrent Programming - NSLock, DispatchSemaphore 사용 방법 2. Concurrent Programming - DispatchSemaphore로 코틀린의 CompletableDeferred 구현방법 3. Concurrent Programming - DispatchQueue의 serial, concurrent, async, sync 이해하고 사용하기 4. Concurrent Programming - Thread Safe Array 구현방법 (DispatchQueue의 barrier 사용) 5. Concurrent Programming - OperationQueue로 동적으로 작업 추가, 취소하는 모듈 구현방법 기본지식) DispatchQueue에서의 seria..
Thread Safe 멀티 스레드 프로그래밍에서 instance나 method에 여러 스레드가 동시에 접근이 이루어져도 프로그램 실행에 문제가 없는 것 ex) thread safe하지 않은 경우, 증상 중 하나 deadlock 자원을 점유하고 있으면서 동시에 다른 자원을 요청하여 계속 wait하는 상태 Thread-safe 지키는 방법 Re-entrancy 어떤 method가 한 스레드에 의해 호출되어 실행중일 때, 다른 스레드가 이 method를 호출하더라도 그 결과가 각각에게 올바르게 주어짐 Thread-local storage ( = Immutable Objects) 공유 자원을 최대한 줄여서 동시 접근을 막는 방법 mutual exclusion 공유 자원을 사용하는 경우, 해당 자원의 접근을 se..