일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Refactoring
- 리펙터링
- ribs
- swift documentation
- uiscrollview
- Clean Code
- RxCocoa
- clean architecture
- UITextView
- collectionview
- MVVM
- uitableview
- map
- Observable
- Xcode
- Protocol
- Human interface guide
- HIG
- tableView
- UICollectionView
- 스위프트
- 리팩토링
- combine
- 리펙토링
- rxswift
- 애니메이션
- ios
- 클린 코드
- swiftUI
- SWIFT
- Today
- Total
목록Deadlock (3)
김종권의 iOS 앱 개발 알아가기
DispatchQueue의 sync와 async 동작 main queue와 thread 구분하기 main thread는 single thread이며, 해당 작업을 처리하는곳이 queue async와 sync로 각각 queue에 작업 담기가 가능 DispatchQueue.main.async { // main queue에 async 작업 넣는 곳 } DispatchQueue.main.sync { // main queue에 sync 작업 넣는 곳 } ViewController를 생성하고 DispatchQueue.main 없이 코드를 작성하면 그 코드들은 모두 DispatchQueue.main.sync 큐에서 처리 class ViewController: UIViewController { override func..
기본지식) sync, async, serial, concurrencysync, asyncsync - 해당 작업이 끝날때까지 대기async - 대기하지 않음비동기가 필요한 이유? 대용량 이미지 파일 다운로드 시 기다리면 UI멈춘것처럼 보임serial, concurrencyserial - 하나의 스레드로 처리concurrency - 여러개의 스레드로 작업을 분산각각 독립적이지만 유사한 여러개의 작업을 처리하는 경우 (당근 마켓에서 반복적인 cell들의 물품 이미지 다운)async vs concurrency 차이점?async는 일의 시작 순서가 순서대로처리 하지 않음concurrency는 일의 시작 순서는 차례대로 하지만 동시에 처리DispatchQueue.main.sync 사용 주의 사항deadlock 걸리..
기초: Sync vs Async vs Serial vs Concurrent 개념 Deadlock (교착 상태) 두 개 이상의 process 및 thread가 서로 상대방의 작업이 끝나기만을 기다리고 있어서 task들을 처리하지 못하는 상태 ex) deadlock Serial Queue인 상황: 한 번에 하나의 작업만 가능 > 내부에 sync한 작업이 존재 > deadlock 발생 let testQueue = DispatchQueue(label: "testQueue") // concurrent선언하지 않았으므로 디폴트인 Serial Queue testQueue.async { testQueue.sync { // 외부 블록이 완료되기 전에 내부 블록이 시작되지 않는 상태 // 외부 블록은 내부 블록이 완료되기..