延遲載入(Lazy Loading)
快取圖片(NScache)
多執行緒
-Main佇列:只含一個佇列
宣告:let q = DispatchQueue.main
q.sync{}(單一執行) q.async{}(同時執行),因只含一個故仍須按順序執行
-Concurrent佇列:含五個Concurrent佇列,優先權:userInteractive、userInitiated、default、utility、background (let )
宣告:let q = DispatchQueue.global()
q.sync{}(單一執行) q.async{}(同時執行),在不同q.async中的程式會同時執行
-Serial佇列:同一個serial中的程式碼採FIFO方式執行,且是在同一個執行緒,不同serial中的程式可同時執行,在不同的執行緒
宣告:let q1 = DispatchQueue(label: "q1")
let q1 = DispatchQueue(label: "q2")
q1.async{} q1.async{} q2.async{}
讓執行緒小睡一下
sleep(3) //等3秒再執行
計時器
Timer
號誌
DispatchSemaphore
OperationQueue
let q = OperationQueue()
q.addOperation{} q.addOperation{}
快取圖片(NScache)
多執行緒
-Main佇列:只含一個佇列
宣告:let q = DispatchQueue.main
q.sync{}(單一執行) q.async{}(同時執行),因只含一個故仍須按順序執行
-Concurrent佇列:含五個Concurrent佇列,優先權:userInteractive、userInitiated、default、utility、background (let )
宣告:let q = DispatchQueue.global()
q.sync{}(單一執行) q.async{}(同時執行),在不同q.async中的程式會同時執行
-Serial佇列:同一個serial中的程式碼採FIFO方式執行,且是在同一個執行緒,不同serial中的程式可同時執行,在不同的執行緒
宣告:let q1 = DispatchQueue(label: "q1")
let q1 = DispatchQueue(label: "q2")
q1.async{} q1.async{} q2.async{}
讓執行緒小睡一下
sleep(3) //等3秒再執行
計時器
Timer
號誌
DispatchSemaphore
OperationQueue
let q = OperationQueue()
q.addOperation{} q.addOperation{}
留言
張貼留言