iOS開發多執行緒篇 多執行緒簡單介紹

2022-09-11 06:24:09 字數 1720 閱讀 3642

ios開發多執行緒篇—多執行緒簡單介紹

一、程序和執行緒

1.什麼是程序

程序是指在系統中正在執行的乙個應用程式

每個程序之間是獨立的,每個程序均執行在其專用且受保護的記憶體空間內

比如同時開啟qq、xcode,系統就會分別啟動2個程序

通過「活動監視器」可以檢視mac系統中所開啟的程序

2.什麼是執行緒

1個程序要想執行任務,必須得有執行緒(每1個程序至少要有1條執行緒)

3.執行緒的序列

1個執行緒中任務的執行是序列的

如果要在1個執行緒中執行多個任務,那麼只能乙個乙個地按順序執行這些任務

也就是說,在同一時間內,1個執行緒只能執行1個任務

二、多執行緒

1.什麼是多執行緒

1個程序中可以開啟多條執行緒,每條執行緒可以並行(同時)執行不同的任務

程序 ->車間,執行緒->車間工人

多執行緒技術可以提高程式的執行效率

2.多執行緒的原理

同一時間,cpu只能處理1條執行緒,只有1條執行緒在工作(執行)

多執行緒併發(同時)執行,其實是cpu快速地在多條執行緒之間排程(切換)

如果cpu排程執行緒的時間足夠快,就造成了多執行緒併發執行的假象

思考:如果執行緒非常非常多,會發生什麼情況?

cpu會在n多執行緒之間排程,cpu會累死,消耗大量的cpu資源

每條執行緒被排程執行的頻次會降低(執行緒的執行效率降低)

3.多執行緒的優缺點

多執行緒的優點

能適當提高程式的執行效率

能適當提高資源利用率(cpu、記憶體利用率)

多執行緒的缺點

開啟執行緒需要占用一定的記憶體空間(預設情況下,主線程占用1m,子執行緒占用512kb),如果開啟大量的執行緒,會占用大量的記憶體空間,降低程式的效能

執行緒越多,cpu在排程執行緒上的開銷就越大

程式設計更加複雜:比如執行緒之間的通訊、多執行緒的資料共享

4.多執行緒在ios開發中的應用

主線程:乙個ios程式執行後,缺省會開啟1條執行緒,稱為「主線程」或「ui執行緒」

主線程的主要作用

顯示\重新整理ui介面

處理ui事件(比如點選事件、滾動事件、拖拽事件等)

主線程的使用注意:別將比較耗時的操作放到主線程中。

耗時操作會卡住主線程,嚴重影響ui的流暢度,給使用者一種「卡」的壞體驗

5.**示例

1 //

2 // yyviewcontroller.m

3 // 01-阻塞主線程

4 //

7 //

8 9 #import "yyviewcontroller.h"

10 11 @inte***ce yyviewcontroller ()

12 - (ibaction)btnclick;

13 @end

14 15

16 @implementation yyviewcontroller

17 18

19 - (void)viewdidload

20 23

24 25 //按鈕的點選事件

26 - (ibaction)btnclick

34 }

35 36 @end

執行效果:

說明:當點選執行的時候,textview點選無響應。

執行分析:等待主線程序列執行。

開啟子執行緒。

iOS開發 多執行緒篇 多執行緒介紹

一 程序和執行緒 1 什麼是程序 程序是指在系統中正在執行的乙個應用程式 每個程序之間是獨立的,每個程序均執行在其專用且受保護的記憶體空間內 比如同時開啟迅雷 xcode,系統就會分別啟動2個程序 通過 活動監視器 可以檢視mac系統中所開啟的程序 3 執行緒的序列 1個執行緒中任務的執行是序列的 ...

iOS開發多執行緒篇 執行緒安全

一 多執行緒的安全隱患 資源共享 1塊資源可能會被多個執行緒共享,也就是多個執行緒可能會訪問同一塊資源 比如多個執行緒訪問同乙個物件 同乙個變數 同乙個檔案 當多個執行緒訪問同一塊資源時,很容易引發資料錯亂和資料安全問題 示例一 示例二 問題 1 2 05 執行緒安全4 5 6 7 89 10 im...

iOS開發多執行緒篇 執行緒安全

ios開發多執行緒篇 執行緒安全 一 多執行緒的安全隱患 資源共享 1塊資源可能會被多個執行緒共享,也就是多個執行緒可能會訪問同一塊資源 比如多個執行緒訪問同乙個物件 同乙個變數 同乙個檔案 當多個執行緒訪問同一塊資源時,很容易引發資料錯亂和資料安全問題 示例一 示例二 問題 1 2 05 執行緒安...