iOS開發多執行緒篇 執行緒的狀態

2021-06-29 04:37:30 字數 2524 閱讀 9269

一、簡單介紹

執行緒的建立:

self.thread=[[nsthread alloc]initwithtarget:self selector:@selector(test) object:nil];

說明:建立執行緒有多種方式,這裡不做過多的介紹。

執行緒的開啟:

執行緒的執行和阻塞:

(1)設定執行緒阻塞1,阻塞2秒

[nsthread sleepfortimeinterval:2.0];

(2)第二種設定執行緒阻塞2,以當前時間為基準阻塞4秒

執行緒處理阻塞狀態時在記憶體中的表現情況:(執行緒被移出可排程執行緒池,此時不可排程)

執行緒的死亡:

當執行緒的任務結束,發生異常,或者是強制退出這三種情況會導致執行緒的死亡。

執行緒死亡後,執行緒物件從記憶體中移除。

二、**示例

**示例1:

1//2

04-nsthread02-執行緒的狀態4//

5//6//

7//89

#import

"yyviewcontroller.h"10

11@inte***ce

yyviewcontroller ()

12 @property(nonatomic,strong)nsthread *thread;

1314

@end

1516

@implementation

yyviewcontroller

1718 - (void

)viewdidload

1927

//當手指按下的時候,開啟執行緒

28 -(void)touchesbegan:(nsset *)touches withevent:(uievent *)event

2933

34 -(void

)test

3553 nslog(@"

test---執行緒結束---%@

",current.name);54}

5556

@end

列印檢視:

**示例2(退出執行緒):

1//2

04-nsthread02-執行緒的狀態4//

5//6//

7//89

#import

"yyviewcontroller.h"10

11@inte***ce

yyviewcontroller ()

12 @property(nonatomic,strong)nsthread *thread;

1314

@end

1516

@implementation

yyviewcontroller

1718 - (void

)viewdidload

1927

//當手指按下的時候,開啟執行緒

28 -(void)touchesbegan:(nsset *)touches withevent:(uievent *)event

2933

34 -(void

)test

355556}

57 nslog(@"

test---執行緒結束---%@

",current.name);58}

5960

@end

列印示例:

iOS開發多執行緒篇 執行緒的狀態

一 簡單介紹 執行緒的建立 self.thread nsthread alloc initwithtarget self selector selector test object nil 說明 建立執行緒有多種方式,這裡不做過多的介紹。執行緒的開啟 執行緒的執行和阻塞 1 設定執行緒阻塞1,阻塞2...

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

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

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

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