일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- @state
- UserDefaults
- Linked List
- 동시성
- deadlock
- 가상 메모리
- 인프런
- 파일 시스템
- Codable
- decode
- Swift
- 알고리즘
- 운영체제
- 데드락
- Algorithm
- 앨런
- Apple Developer Academy
- struct
- 프로세스 스케줄링
- SwiftUI
- 상호배제
- 오브젝트
- 동기화
- core data
- 100 days of SwiftUI
- IOS
- 비동기
- COLOR
- async
- forEach
- Today
- Total
목록동시성 (5)
기어가더라도 제대로
Operation struct SlowDivideOperation { let name: String let a: Double let b: Double let sleepDuration: UInt64 func execute() async -> Double { do { // Sleep for x seconds try await Task.sleep(nanoseconds: sleepDuration * 1_000_000_000) let value = a / b return value } catch { return 0.0 } } } let operations = [ SlowDivideOperation(name: "operation-0", a: 5, b: 1, sleepDuration: 5), SlowDivideOpe..
경쟁 상황 2개 이상의 쓰레드를 사용하면서 , 동일한 메모리 접근 등으로 인해 발생할 수 있는 문제. Thread-Safety 여러 쓰레드가 동시에 쓰여도 안전하다. 동시적 처리를 하면서(여러 쓰레드를 사용하면서도) 문제 없이 쓰레드를 안전하게 사용 교착 상태(DeadLock) 가장 좋은 예는 자기 자원을 점유한 상태에서 상대방의 자원을 접근하려고 서로 하는 상황.. 두 사람이 있는데 각자 치킨 닭다리를 들고 있다. 각각의 사람들은 상대방의 치킨이 먹고 싶다. 그래서 닭다리를 쥐고있는 손의 반대 손으로 상대방의 치킨을 뺏으려고 하는 상황 Priority Inversion(우선 순위 뒤바뀜) 작업의 우선 순위를 봤을 때 Task 3 이 가장 먼저 실행이 되어야 할거같지만, ..