일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리펙토링
- ios
- combine
- UITextView
- RxCocoa
- 클린 코드
- 스위프트
- tableView
- 애니메이션
- 리팩토링
- UICollectionView
- SWIFT
- HIG
- collectionview
- Refactoring
- Clean Code
- rxswift
- Protocol
- uiscrollview
- ribs
- swiftUI
- Observable
- map
- Xcode
- swift documentation
- 리펙터링
- uitableview
- clean architecture
- MVVM
- Human interface guide
- Today
- Total
목록Critical Section (2)
김종권의 iOS 앱 개발 알아가기
Critical Section(크리티컬 섹션) 한 번에 둘 이상의 스레드가 접근하면 안되는 공유 자원 영역 ex) 멀티 스레드로 처리하는 Data가 있을 때 set이 동시에 이루어지면 안되므로 이 구역을 Critical Section이라고 명칭 NSLock, NSRecursiveLock 개념 NSLock 하나의 스레드 혹은 둘 이상의 스레드가 lock()이 있는 다음 코드 부분을 접근하지 못하도록 상호배제하는 방법 critical section에 들어갈때 lock()을 걸고 작업을 끝내면 unlock() 호출하는 방법 NSRecursiveLock 둘 이상의 스레드가 lock()이 있는 다음 코드 부분을 접근하지 못하도록 상호배제하는 방법 NSLock과 NSRecursiveLock 차이 NSRecursiv..
Semaphore 기본 지식 동시에 하나의 자원에 접근을 방지하게 할 수 있는 비동기 문제를 해결하는데 사용 여러 프로세스가 데이터를 공유하면서 작업을 수행할 때, 동시에 접근하는 안되는 자원을 동시에 접근할 수 없도록 막는 플래그 기능 * Critical Section: 동시에 접근하는 안되는 자원 Semaphore는 공유자원에 진입할 수 있는 허용 개수를 의미 (0이 되면 프로세스들의 공유 자원에 진입하는 것을 막는 것) var semaphore = 2 // 작업 1 수행 semaphore -= 1 // 현재 semaphore = 1 // 작업 2 수행 semaphore -= 1 // 현재 semaphore = 0 // 작업 3 수행 // 현재 semaphore가 0이므로 대기 Semaphore 연산..