iOS多线程基本使用教程(Swift)
生活随笔
收集整理的這篇文章主要介紹了
iOS多线程基本使用教程(Swift)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
iOS多線程基本使用
- 一、iOS的三種多線程技術
- 1、NSThread
- 2、NSOperation
- 3、GCD
- 二、基本使用
- NSThread的基本使用
- NSOperation的基本使用
- GCD的基本使用
一、iOS的三種多線程技術
1、NSThread
–優點:NSThread 比其他兩個輕量級,使用簡單
–缺點:需要自己管理線程的生命周期、線程同步、加鎖、睡眠以及喚醒等。線程同步對數據的加鎖會有一定的系統開銷
2、NSOperation
不需要關心線程管理,數據同步的事情,可以把精力放在自己需要執行的操作上
3、GCD
基于C語言的
二、基本使用
NSThread的基本使用
方式一:
// blocklet thread = Thread.init {print("1、----this is thread \(Thread.current) ")}thread.start()方式二:
// SELlet thread2 = Thread.init(target: self, selector: #selector(text), object: nil)thread2.start() @objc func text(){print("2、----this is thread \(Thread.current) ")}方式三:
self.performSelector(inBackground: #selector(text2), with: nil)輸出
tips:可以給任意一個線程增加延遲看看
NSOperation的基本使用
方式一:
let queue = OperationQueue.init() // 最大線程數queue.maxConcurrentOperationCount = 2queue.addOperation {sleep(1)print("1111")}queue.addOperation {print("2222")}輸出結果如下:
方式二:可設置優先級
略作修改
輸出如下:
優先級如下:
GCD的基本使用
方式一:queue.async 異步
let queue = DispatchQueue.init(label: "com.zjb.concurrent",attributes: .concurrent)for i in 0...15 {queue.async {sleep(1)print("this is \(Thread.current) \(i)")}}
方式二:queue.sync 同步
附加網絡上一段代碼
for i in 1...10 {DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async {NSLog("DispatchQoS.QoSClass.default, %d", i)}DispatchQueue.global(qos: DispatchQoS.QoSClass.background).async {NSLog("DispatchQoS.QoSClass.background, %d", i)}DispatchQueue.global(qos: DispatchQoS.QoSClass.unspecified).async {NSLog("DispatchQoS.QoSClass.unspecified, %d", i)}DispatchQueue.global(qos: DispatchQoS.QoSClass.userInitiated).async {NSLog("DispatchQoS.QoSClass.userInitiated, %d", i)}DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).async {NSLog("DispatchQoS.QoSClass.userInteractive, %d", i)}DispatchQueue.global(qos: DispatchQoS.QoSClass.utility).async {NSLog("DispatchQoS.QoSClass.utility, %d", i)}}優先級userInteractive最高、background最低
總結
以上是生活随笔為你收集整理的iOS多线程基本使用教程(Swift)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu下右键无法打开终端(open
- 下一篇: 鲜为人知且未充分利用的 CSS 功能