일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- clean architecture
- Human interface guide
- ribs
- rxswift
- collectionview
- map
- MVVM
- uitableview
- 클린 코드
- 리팩토링
- swift documentation
- ios
- RxCocoa
- HIG
- Refactoring
- tableView
- 리펙토링
- Observable
- UICollectionView
- SWIFT
- 스위프트
- Xcode
- 애니메이션
- UITextView
- Clean Code
- uiscrollview
- 리펙터링
- Protocol
- swiftUI
- combine
- Today
- Total
목록NSLock (3)
김종권의 iOS 앱 개발 알아가기
Atomic 이란? 다중 스레드 프로그래밍에서 사용되는 개념 연산이 더 이상 분할되거나 중단될 수 없음을 의미 thread safe 지키는 방법 중 하나 (구체적인 개념은 이전 포스팅 글 참고) ex) 두 명의 사용자가 프린터 출력 명령 -> 각 인쇄는 중단되지 않고 한번에 실행 만약 atomic이 아닌 경우, 두 사용자의 자료를 부분적으로 인쇄되는 문제 Atomic 프로퍼티 생성 방법 NSLock을 사용 (자세한 개념은 이전 포스팅 글 참고) lock() 메소드를 사용하면 그 하위 코드들은 스레드가 하나만 접근할 수 있는 영역 주의) 가끔 아래처럼 NSLock을 상속받게끔 구현할 수 있지만, MyInt를 사용하는 쪽에서는 알아서 불필요한 NSLock의 프로퍼티들까지 인터페이스가 열리기 때문에 비추천 f..
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로 동적으로 작업 추가, 취소하는 모듈 구현방법 NSLock 개념 (자세한 ThreadSafe개념과..