자료 출처
OperationQueue - boostcourse
Class OperationQueue
Operation은 태스크(작업)와 관련된 코드와 데이터를 나타내는 추상 클래스입니다.
An operation queue executes its queued Operation objects based on their priority and readiness. After being added to an operation queue, an operation remains in its queue until it reports that it is finished with its task. You can’t directly remove an operation from a queue after it has been added.
연산 객체(Operation Object)
연산 객체 (Operation Object)는 애플리케이션에서 수행하려는 연산(Operation)을 캡슐화하는 데 사용하는 Foundation
프레임 워크의 Operation
클래스 인스턴스입니다.
캡슐화란? Encapsulation
→ 중요사항을 감추고 외부에서 개체를 사용할 수 있는 수단을 제공하는 것
특정 Operation Queues 가져오기
Operation Queue
를 반환합니다.class var current: OperationQueue? { get }
class var main: OperationQueue { get }
대기열(Queue)에서 동작(Operation) 관리
func addOperation(_op: Operation)
func addOperations(_ops:[Operation], waitUntilFinished wait: Bool)
func addOperation(_block: @escaping () -> Void)
cancelAllOperations() : 대기 중이거나 실행 중인 모든 연산(Operation)을 취소합니다.
func cancelAllOperations()
waitUntilAllOperationsAreFinished() : 대기 중인 모든 연산(Operation)과 실행 중인 연산(Operation)이 모두 완료될 때까지 현재 스레드로의 접근을 차단합니다.
func waitUntilAllOperationsAreFinished()
연산(Operation) 실행 관리
var maxConcurrentOperationCount: Int { get set }
var qualityOfService: QualityOfService { get set }
연산(Operation) 중단
false
인 경우 대기열(Queue)에 있는 연산(Operation)을 실행하고, true
인 경우 대기열(Queue)에 대기 중인 연산(Operation)을 실행하진 않지만 이미 실행 중인 연산(Operation)은 계속 실행됩니다.var isSuspended: Bool { get set }
대기열(Queue)의 구성
name : Operation Queue의 이름
var name: String? { get set }