일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Swift
- Algorithm
- struct
- async
- 동기화
- COLOR
- 운영체제
- 100 days of SwiftUI
- 상호배제
- 프로세스 스케줄링
- Codable
- Apple Developer Academy
- 데드락
- 비동기
- Linked List
- core data
- 오브젝트
- 파일 시스템
- deadlock
- @state
- decode
- SwiftUI
- 알고리즘
- IOS
- forEach
- 가상 메모리
- 인프런
- 동시성
- UserDefaults
- 앨런
- Today
- Total
목록deadlock (4)
기어가더라도 제대로
목차 - UIKit 이 Thread-Safe 하지 않은 이유 - Run Loop 와 뷰 드로잉 사이클 - iOS 렌더링 과정을 이해하기 - 렌더링 프레임워크 - Core Animation Pipeline - Texture or ComponentKit - 결론 - 역자의 말(소감, 추가 의문) 개발을 하다보면 background 스레드에서 UIKit 의 요소를 호출하는 경우가 있다. background 에서 작업하는 네트워크 콜백에서 imageView.image = image 라고 하거나, UIApplication.sharedApplication 을 호출하는 등의 작업을 백그라운드 스레드에서 하는 경우말이다. 이럴 경우에, 우리는 런타임 에러를 얻게 되고 즉시 그것들을 고칠 것이다. 근데 생각을 해보면, ..
데드락을 예방하거나 회피하는 방법은 크게 3가지가 있다 예방 회피 탐지 및 복구 이번 시간엔 예방에 대해 배워보자. 4가지 조건이 성립할 때 데드락이 발생한다. 이중 하나를 삭제하면 데드락은 발생하지 않는다. 자원의 배타적 사용 비선점 자원 자원을 하나 Hold 하고 다른 자원 요청 Circular wait 예방은 4가지의 데드락 성립요건중에 하나를 제거하는 방법이다. 그 결과 deadlock 은 절대 발생하지 않는다. 1. 모든 자원을 공유 허용 Exclusive use of resources 조건 제거 현실적으로 불가능 CPU, memory, disk drive 등 공유하기 어려운 부분이 많다. 컴퓨터의 정의 부터 바꿔야할 거같다. 2. 모든 자원에 대해 선..
서로 프로세스가 서로가 보유하고 있는 자원을 요청하는 경우 그래프 모델과 상태 전이 모델로 나타낼수 있다. 그래프 모델은 자료구조 보듯이 보면 된다. 서로 자원 할당과 요청 사이에서 Cycle 이 돌고 있다면 데드락이다. 자원에서 프로세스로 에지가 간다면 자원 할당 프로세스에서 자원으로 에지가 간다면 자원 요청 프로세스의 상태를 표로 나타낸 모델 예를 들어, 하나의 프로세스가 자원 두개를 요청할 수 있는 상태를 5가지로 나타낼 수 있다. 프로세스가 2개인 모습을 그리기엔 조금 복잡해질 수 있다. 두개의 프로세스가 자원 두개를 요청할 수 있는 경우의 상태를 나타낸 표이다. 간선에 지나가는 숫자는 해당 프로세스 id 이다. 정점을 하나씩 지나가는 경우는 자원을 요청하거나, 유지하는 경우이다. 정점을 두..