간단하게 문서 정리
요약
- 개별 qos 를 지정할 수 있다.
- [ ] Queue 의 qos 와 어떤 관계가 있는지?
- workItem 의 실행이 끝난 후 실행될 completion handler 를 추가할 수 있다. → notify()
- workItem 의 실행이 끝나기 전까지 caller 를 block 할 수 있다. → wait()
- 실행 중인 작업은 취소할 수 없다.
- 아직 실행 되지 않은 작업은 cancel() 을 통해 취소할 수 있다.
문서 정리
- Adding a completion handler
- Waiting for the Completion of a work Item
- wait()
- 해당 workItem 실행이 완료될때 까지 caller 가 기다리도록 만든다.
- Canceling a Work Item
- cancel()
- 이미 실행중인 Work Item 의 동작을 멈추지는 않는다.
- 호출 이후에 workItem 이 실행된다면 바로 반환하게 만든다.
아래 코드의 결과는?
let workItem = DispatchWorkItem(block: {
print("hello!")
})
DispatchQueue.global().async(execute: workItem)
workItem.wait() // <- 이 코드의 유무로 결과가 바뀔까? (유추해보기)
print("who are you?")