IOS 多線程 線程NSThread

來源:互聯網
上載者:User

線程 NSThread 多線程

 

線程與進程
進程
是一個活動的程式,一個容器
是系統資源管理的最小單位
切換代價較高

線程
是在進程容器中運行,實際工作的代碼
是程式執行的最小單位
切換代價較低(由於線程是在同一塊記憶體中進行切換的)

一個NSThread對象在程式中控制一個線程,當你有很多任務需要執行,但又不想阻塞主線程時,
多線程將會很有用。運用多線程可以同時執行多個任務。

NSThread的方法
//初始化
1、- (id)init //這個是NSThread的指定初始化方法
2、- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument
初始化一個線程,應該注意的是這個SEL只能有一個參數,並且選擇的方法不能有傳回值,
需要注意的是這個方法只是建立了一個線程,並沒有開始這個線程,要用stat方法去開始線程

3、+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument
建立並開始一個線程。
4、- (void)start //開始一個線程
5、+ (void)sleepUntilDate:(NSDate *)aDate
阻塞當前線程,直到指定時間
6、+ (void)sleepForTimeInterval:(NSTimeInterval)ti
使線程睡眠一段時間

//判斷線程狀態
7、- (BOOL)isExecuting //判斷線程是否正在執行
8、- (BOOL)isCancelled //判斷線程是否已經取消
9、- (BOOL)isFinished //判斷線程是否執行完
10、+ (BOOL)isMainThread //判斷當前線程是不是主線程
11、+ (BOOL)isMultiThreaded //判斷應用程式是否是多線程的
12、- (BOOL)isMainThread //判斷制定的對象是否是主線程


13、+ (NSThread *)mainThread //返回一個主線程對象
14、+ (NSThread *)currentThread //返回當前的線程
15、+ (NSArray *)callStackReturnAddresses
返回的是這個線程在棧中所佔的地址所組成的數組
16、+ (NSArray *)callStackSymbols //返回棧空間的符號

 

//線程屬性

17、– threadDictionary //返回線程對象的字典
18、– name //返回線程名字
19、– setName: //設定線程名字
20、– stackSize //返回線程所佔棧的空間大小
21、– setStackSize: //設定線程所佔棧的空間大小


//線程優先權
22、+ threadPriority //返回當前線程的優先權,其實返回的是一個double型數字,
//從0.0 到1.0 其中1.0最高
23、– threadPriority //返回當前線程對象的優先權
24、+ setThreadPriority: //設定當前線程的有限權

25、– setThreadPriority: //同上

 

 




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.