/// global Queue + 异步任务
@IBAction func globalAsyn(_ sender: Any) {
//创建一个全局队列。
//get a global queue
let globalQueue = DispatchQueue.global()
for i in 0...10 {
//使用全局队列,开启异步任务。
//use the global queue , run in asynchronous
globalQueue.async {
print("I am No.\(i), current thread name is:\(Thread.current)")
}
}
}
我们看一下运行的结果,乱序打印的,并且没有在主线程中。这证明了确实是多个任务没有按照顺序执行。
2.2 main Queue + 异步任务
/// main Queue + 异步任务
@IBAction func mainAsyn(_ sender: Any) {
//创建一个主队列
//get a main queue
let mainQueue = DispatchQueue.main
for i in 0...10 {
//使用主队列,开启异步任务
//use the main queue, run in asynchronous
mainQueue.async {
print("I am No.\(i), current thread name is:\(Thread.current)")
}
}
}
public enum QoSClass {
case background //后台默默执行,The background quality of service class.
case utility //通用的,The utility quality of service class.
case `default` //默认值,The default quality of service class.
case userInitiated //用户发起的,The user-initiated quality of service class.
case userInteractive //用来执行用户交互,The user-interactive quality of service class.
case unspecified //没啥重要事情,The absence of a quality of service class.
public init?(rawValue: qos_class_t)
public var rawValue: qos_class_t { get }
}