-
[Swift] DispatchQueue.global() 과 Task.detatched(priority: .background) 의 차이점Swift 2023. 10. 24. 12:01
DispatchQueue.global().async { // background work }
// struct 이기 때문에 변수에 할당 가능 let task = Task.detatched(priority: .background) { try await doSomethingBadAss() } Task { // task.result 로 결과를 예외 처리 가능 switch await task.result { case .success(let result): break case .failure(let error): break } // failure 처리 안할꺼면 그냥 value (success 에 대한 return) 만 받을 수도 있음 await task.value } // 맘 바뀌면 실행중인 테스트 블록을 취소해 버릴수도 있음 task.cancel()
둘다 Sendable 이라서 data race 에 안전하긴 함!
'Swift' 카테고리의 다른 글
[Combine] AsyncPublisher 란? (0) 2023.10.24 [Swift] ThreadSafe 한 Class 만들기 (1) 2023.10.24 [Swift] Mirror 써보기 (0) 2023.10.18 [Swift, Combine] AnyPublisher 를 async/await throws 로 사용해보자 (0) 2023.10.04 [xcode] shortcuts (0) 2023.08.22