一、簡單介紹
執行緒的建立:
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...