多线程篇-NSThread-简单使用
生活随笔
收集整理的這篇文章主要介紹了
多线程篇-NSThread-简单使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
創建的三種方式
第一種
- 介紹
- 使用
- 結果
第二種
- 介紹
- 使用
- 結果
第三種
- 介紹
- 使用
結果
線程的狀態
介紹
objc //線程的各種狀態:新建-就緒-運行-阻塞-死亡 //常用的控制線程狀態的方法 [NSThread exit];//退出當前線程 [NSThread sleepForTimeInterval:2.0];//阻塞線程 [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:2.0]];//阻塞線程 //注意:線程死了不能復生- 使用
objc /* 狀態 */ -(void)threadState{ NSLog(@"睡2 秒"); //為類方法,直接讓線程睡眠兩秒 [NSThread sleepForTimeInterval:2.0]; //分離出一個子線程 [NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:nil]; } /* 線程執行方法 */ -(void)run:(id)obj{ for (int i=0; i<8; i++) { if(i==2){ NSLog(@"睡5秒"); //[NSDate dateWithTimeIntervalSinceNow:5.0] 從現在開始過了5秒 //睡到指定的日期, [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:5.0]]; } NSLog(@"%@----%d",[NSThread currentThread],i); //當線程滿足一定的條件,可以強行停止 if (i==5) { //退出 [NSThread exit]; } } NSLog(@"這里是不能來的,因為在5的時候就退出了"); } 結果
擴展
####一定不能在主線程執行 [NSThread exit] 如果一旦執行了那么程序則會終止掉
寫到這才發現,忘記介紹線程中常用屬性
//設置線程的屬性 //設置線程的名稱 thread.name = @"線程A";//設置線程的優先級,注意線程優先級的取值范圍為0.0~1.0之間,1.0表示線程的優先級最高,如果不設置該值,那么理想狀態下默認為0.5 thread.threadPriority = 1.0;- thread.name是在一般比較大型的項目中比較常見的設置,因為大型項目中會有走很多線程,然而出現bug,thread.name能在短時間內查找
thread.threadPriority這個是設置優先級別,但是我建議還是不要去設置它,因為多線程開發:盡量簡單點,不要太復雜,影響性能不說,有可能還把自己帶暈,不值得,以上純屬個人建議。
本章到此結束歡迎各位碼友隨意轉載并指正
轉載于:https://www.cnblogs.com/ljy-666/p/5125818.html
總結
以上是生活随笔為你收集整理的多线程篇-NSThread-简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5G来了,普通人看热闹,程序员看颠覆
- 下一篇: 微信小程序开源demo汇总