#31 - 效能管理(Multi-Thread)

延遲載入(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{}

留言