iOS開發多執行緒篇-概述
iOS開發多執行緒篇<概述>
一.程式和執行緒
1.什麼是程式
程式是指在系統中正在執行的一個應用程式
每個程式之間是獨立的,每個程式均執行在其專用且受保護的記憶體空間內
比如:同時開啟QQ,Xcode,系統就會分別啟動2個程式
通過”活動監視器”可以檢視Mac系統中所開啟的程式
2.什麼是執行緒
1個程式要想執行任務,必須得有執行緒(每1個程式至少要有1條執行緒)
執行緒是程式的基本執行單元,一個程式(程式)的所有任務都線上程中執行
比如使用網易雲音樂播放音樂、下載音樂,都需要在縣城中執行
3.執行緒的序列
1個執行緒中任務的執行是序列的
如果要在1個執行緒中執行多個任務,那麼只能一個一個地按順序執行這些任務
也就是說,在同一時間內,1個執行緒只能執行1個任務
比如:網易雲音樂在一個執行緒中下載音樂,如果選擇每次只下載一首,那麼下載音樂這個執行緒會序列執行
二:多執行緒
1.什麼是多執行緒
1個程式中可以開啟多條執行緒,每條執行緒可以並行(同時)執行不同的任務
程式 ->網易雲音樂,執行緒->網易雲音樂播放、下載執行緒
多執行緒技術可以提高程式的執行效率
比如需要下載100首音樂,每首下載時間需要1分鐘
單程式需要100分鐘全部下載完
開啟三條執行緒下載,只需要33分鐘下載完成(不考慮網路限制)
2.多執行緒的原理
同一時間,CPU只能處理1條執行緒,只有1條執行緒在工作(執行)
多執行緒(併發)執行,其實是CPU快速的在多條執行緒之間排程(切換)
如果CPU排程多執行緒的時間足夠快,就造成了多執行緒併發執行的假象
思考:如果多執行緒非常非常多,會發生什麼情況
CPU會在N多執行緒之間排程,CPU會累死,消耗大量的CPU資源
每條執行緒被排程的頻次會降低(執行緒的執行效率降低)
3.多執行緒的優缺點
多執行緒的優點
能適當提高程式的執行效率
能適當提高資源利用率(CPU、記憶體利用率)
多執行緒的缺點
開啟執行緒需要佔用一定的記憶體空間(預設情況下,主執行緒佔用1M,子執行緒佔用512KB)
啟用大量的執行緒,會佔用大量的記憶體空間,降低程式的效能
執行緒越多,CPU在排程執行緒上的開銷就越大
程式設計更加複雜:比如執行緒之間的通訊、多執行緒的資料共享
4.多執行緒在iOS開發中的應用
主執行緒:一個iOS程式執行之後,預設會開啟1條執行緒,稱為”主執行緒“或”UI執行緒“
主執行緒的主要作用
顯示\重新整理UI介面
處理UI事件(比如點選事件、滾動事件、拖拽事件等)
主執行緒的使用注意:別將比較耗時的操作放到主執行緒中
耗時操作會卡住主執行緒,嚴重影響UI的流暢度,給使用者一種卡的不好體驗
相關文章
- 【iOS開發】多執行緒 - 概述iOS執行緒
- IOS多執行緒程式設計:概述iOS執行緒程式設計
- iOS多執行緒GCD篇iOS執行緒GC
- 多執行緒-執行緒概述等執行緒
- 多執行緒概述執行緒
- iOS多執行緒開發—GCD (一)iOS執行緒GC
- iOS 開發中的多執行緒iOS執行緒
- iOS多執行緒Pthreads篇iOS執行緒thread
- iOS多執行緒NSThread篇iOS執行緒thread
- iOS多執行緒NSOperation篇iOS執行緒
- 多執行緒的概述執行緒
- 多執行緒安全-iOS開發注意咯!執行緒iOS
- 多執行緒安全-iOS開發注意咯!!!執行緒iOS
- 多執行緒併發篇——如何停止執行緒執行緒
- 多執行緒-程式和執行緒的概述執行緒
- iOS多執行緒詳解:概念篇iOS執行緒
- 多執行緒-執行緒組的概述和使用執行緒
- 多執行緒-執行緒池的概述和使用執行緒
- Java多執行緒1:程式與執行緒概述Java執行緒
- iOS多執行緒詳解:實踐篇iOS執行緒
- IOS多執行緒iOS執行緒
- iOS 多執行緒iOS執行緒
- iOS 多執行緒之執行緒安全iOS執行緒
- iOS多執行緒之執行緒安全iOS執行緒
- Java 多執行緒 - 總結概述Java執行緒
- Java多執行緒(一)多執行緒入門篇Java執行緒
- iOS開發基礎——執行緒安全(執行緒鎖)iOS執行緒
- iOS多執行緒整理iOS執行緒
- iOS-多執行緒iOS執行緒
- C#多執行緒開發-執行緒同步 02C#執行緒
- C#多執行緒開發-執行緒池03C#執行緒
- 多執行緒同步的開發執行緒
- iOS多執行緒安全-13種執行緒鎖?iOS執行緒
- C#多執行緒開發-執行緒基礎 01C#執行緒
- iOS 多執行緒總結iOS執行緒
- iOS 多執行緒筆記iOS執行緒筆記
- IOS多執行緒之(GCD)iOS執行緒GC
- iOS 多執行緒之GCDiOS執行緒GC