원칙적으로 일련 번호 DispatchQueue
은 제출 된 작업을 하나씩 실행합니다. 그러나 컨텍스트 스위치가 한 작업에서 트리거되는 경우 (예 : sleep
)? 큐가 즉시 다음 작업을 실행합니까, 아니면 현재 작업이 완료 될 때까지 대기합니까? 이 코드에 대한컨텍스트 스위치가 직렬 DispatchQueue에서 트리거되는 경우 어떻게됩니까?
:
q.async {
print("IN 1")
var i = 1
while i < 10 {
Thread.sleep(forTimeInterval: 0.1)
i += 1
}
print("OUT of 1")
}
q.async {
print("IN 2")
}
은 결과입니다
// IN 1 -> OUT of 1 -> IN 2 ?
// or IN 1 -> IN 2 -> OUT of 1 ?
내가 놀이터에서 코드를 실행하려하지만 sleep
보인다 (그리고 Thread.sleep
)이 놀이터에서 작동하지 않습니다.
실제로. PlaygroundSupport에 대한 팁 주셔서 감사합니다! – NeoWang