经三次测试DispatchQueue中的class优先级顺序是 :
background < utility < default < unspecified < userInitiated < userInteractive
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let queuea = DispatchQueue.global(qos: .default)
queuea.async {
for i in 0...10 {
print("this is for queue a", i)
}
}
let queueb = DispatchQueue.global(qos: .background)
queueb.async {
for j in 1...10 {
print("this is for queue b", j)
}
}
let queuec = DispatchQueue.global(qos: .unspecified)
queuec.async {
for x in 1...10 {
print("this is for queue c", x)
}
}
let queued = DispatchQueue.global(qos: .userInitiated)
queued.async {
for y in 1...10 {
print("this is for queue d", y)
}
}
let queuee = DispatchQueue.global(qos: .userInteractive)
queuee.async {
for w in 1...10 {
print("this is for queue e", w)
}
}
let queuef = DispatchQueue.global(qos: .utility)
queuef.async {
for n in 1...10{
print("this is for queue f", n)
}
}
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
下面测试结果:
第一次:
this is for queue e 1
this is for queue c 1
this is for queue a 0
this is for queue d 1
this is for queue f 1
this is for queue b 1
this is for queue e 2
this is for queue c 2
this is for queue d 2
this is for queue a 1
this is for queue f 2
this is for queue e 3
this is for queue c 3
this is for queue d 3
this is for queue a 2
this is for queue e 4
this is for queue f 3
this is for queue c 4
this is for queue d 4
this is for queue a 3
this is for queue e 5
this is for queue c 5
this is for queue f 4
this is for queue d 5
this is for queue e 6
this is for queue a 4
this is for queue c 6
this is for queue e 7
this is for queue d 6
this is for queue a 5
this is for queue f 5
this is for queue c 7
this is for queue e 8
this is for queue d 7
this is for queue a 6
this is for queue c 8
this is for queue f 6
this is for queue e 9
this is for queue d 8
this is for queue a 7
this is for queue c 9
this is for queue e 10
this is for queue f 7
this is for queue d 9
this is for queue a 8
this is for queue c 10
this is for queue f 8
this is for queue d 10
this is for queue a 9
this is for queue f 9
this is for queue a 10
this is for queue f 10
this is for queue b 2
this is for queue b 3
this is for queue b 4
this is for queue b 5
this is for queue b 6
this is for queue b 7
this is for queue b 8
this is for queue b 9
this is for queue b 10
第二次:
this is for queue e 1
this is for queue a 0
this is for queue d 1
this is for queue c 1
this is for queue f 1
this is for queue b 1
this is for queue e 2
this is for queue a 1
this is for queue e 3
this is for queue e 4
this is for queue e 5
this is for queue e 6
this is for queue e 7
this is for queue e 8
this is for queue e 9
this is for queue e 10
this is for queue d 2
this is for queue a 2
this is for queue c 2
this is for queue f 2
this is for queue d 3
this is for queue a 3
this is for queue d 4
this is for queue a 4
this is for queue d 5
this is for queue a 5
this is for queue d 6
this is for queue a 6
this is for queue d 7
this is for queue a 7
this is for queue d 8
this is for queue a 8
this is for queue d 9
this is for queue a 9
this is for queue d 10
this is for queue a 10
this is for queue c 3
this is for queue c 4
this is for queue c 5
this is for queue c 6
this is for queue c 7
this is for queue c 8
this is for queue c 9
this is for queue c 10
this is for queue f 3
this is for queue f 4
this is for queue f 5
this is for queue f 6
this is for queue f 7
this is for queue f 8
this is for queue f 9
this is for queue f 10
this is for queue b 2
this is for queue b 3
this is for queue b 4
this is for queue b 5
this is for queue b 6
this is for queue b 7
this is for queue b 8
this is for queue b 9
this is for queue b 10
第三次测试结果:
this is for queue e 1
this is for queue d 1
this is for queue c 1
this is for queue a 0
this is for queue f 1
this is for queue b 1
this is for queue e 2
this is for queue e 3
this is for queue e 4
this is for queue e 5
this is for queue e 6
this is for queue e 7
this is for queue e 8
this is for queue e 9
this is for queue e 10
this is for queue d 2
this is for queue d 3
this is for queue d 4
this is for queue d 5
this is for queue d 6
this is for queue d 7
this is for queue d 8
this is for queue d 9
this is for queue d 10
this is for queue c 2
this is for queue c 3
this is for queue c 4
this is for queue c 5
this is for queue c 6
this is for queue a 1
this is for queue c 7
this is for queue a 2
this is for queue c 8
this is for queue a 3
this is for queue c 9
this is for queue a 4
this is for queue c 10
this is for queue a 5
this is for queue a 6
this is for queue a 7
this is for queue a 8
this is for queue a 9
this is for queue a 10
this is for queue f 2
this is for queue f 3
this is for queue f 4
this is for queue f 5
this is for queue f 6
this is for queue b 2
this is for queue f 7
this is for queue b 3
this is for queue f 8
this is for queue b 4
this is for queue f 9
this is for queue b 5
this is for queue f 10
this is for queue b 6
this is for queue b 7
this is for queue b 8
this is for queue b 9
this is for queue b 10