-
Operation QueueSwift 2021. 5. 26. 10:56
공식문서
https://developer.apple.com/documentation/foundation/operationqueue
기능
일단 세가지를 제공한다.
Interoperation Dependencied : 순서
Cancellation : 취소
Completion Handler: 완료
Read -> Excuting -> Finished / Cancelled (single short 이기때문에 단방향)
Operation을 OperationQueue에서 관리한다.
정상적으로 실행된 operation은 큐에서 자동으로 제거됨, 끝나지 않으면 제거되지 않음(이 때문에 취소 기능을 구현)
QueuePriority
QueuePriority를 설정할 수 있음
QualityOfService도 우선순위가 높을 수록 더 빠르게 실행되고 실행범위를 설정 가능
main에 하고 싶다.
let operationQueue = OperationQueue.main
아니면 그냥
let queue = OperationQueue()
먼저 이걸 쓰게 된 계기 부터 말하자면, 통신을 내가 원하는대로 바꿀 수 없는데, 단건으로 조회하는 통신을 비동기적으로 하면서 해당 index도 알아야될때 사용하게 되었습니다. (마음 같아서는 통신 보낼때 index를 input으로 보내고, output으로 받으면 좋을텐데 그럴수 없었다.)
그리고 왜 사용하는지 좀 찾아보니 여러 이유가 있겠지만, 비동기 통신에서 취소 처리를 한다거나, 비동기통신에서 어떤 처리가 복잡해질때 사용하는것 같다고 느꼈다. 이는 RxSwift를 공부하면서 좀 해소되었다고 생각한다.
728x90'Swift' 카테고리의 다른 글
xcode 오류 nw_connection_copy_protocol_metadata [C20] Client called nw_connection_copy_protocol_metadata on unconnected nw_connection (0) 2021.06.29 weak self 에 대해서 (언제나 하는걸까?) (0) 2021.06.18 컴파일 타임 / 런타임 (0) 2021.05.12 Swift GCD (0) 2021.05.11 Swift 의 용어 (알쓸신잡편) (0) 2021.05.10