swift多線程

swift 2.0 和 3.0的多線程的區(qū)別

swift 2.0多線程的基礎(chǔ)使用

dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in
print("加載數(shù)據(jù)", [NSThread.currentThread()])
dispatch_async(dispatch_get_main_queue(), { () -> Void in
callBack()
})
}

swift 3.0 多線程

//最常用模板
//全局隊列異步執(zhí)行
DispatchQueue.global().async {
//耗時操作
DispatchQueue.main.async {
//回到主線程
}
}

//創(chuàng)建新隊列
DispatchQueue(label: "newQueue", attributes: .concurrent, target: nil).async {
//并行隊列異步執(zhí)行
}

//創(chuàng)建新隊列
DispatchQueue(label: "newQueueAsync", attributes: .concurrent, target: nil).async {
//并行隊列異步執(zhí)行
}

//創(chuàng)建新隊列
DispatchQueue(label: "newQueueSync", attributes: .concurrent, target: nil).sync {
//并行隊列同步執(zhí)行
}

//創(chuàng)建新隊列
DispatchQueue(label: "newQueueAsync").async {
//串行隊列異步執(zhí)行
}

//創(chuàng)建新隊列
DispatchQueue(label: "newQueueAsync").async {
//串行隊列異步執(zhí)行
}

let delay:TimeInterval = 3
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delay) {
//3秒后在主線程執(zhí)行
}

dispatch_block_t在swift3.0已經(jīng)沒了
dispatch_block_t等價于() -> void
dispatch_queue_t等價于DispatchQueue

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容