NSThread-多線程

前言:關(guān)于線程和進(jìn)程荆烈,其實(shí)不難理解淌山,進(jìn)程就相當(dāng)于手機(jī)中的視頻播放器裸燎,線程就相當(dāng)于在視頻播放器中觀看視頻,多線程相當(dāng)于觀看視頻的同時泼疑,也下載視頻德绿。

/*

  • 加載一張圖片

  • 1、創(chuàng)建一個UIImageView退渗,并放在父視圖上

  • 2移稳、創(chuàng)建一個子線程

  • 3、通過url獲取網(wǎng)絡(luò)圖片

  • 4会油、回到主線程

  • 5个粱、在主線程更新UI

*/

開辟線程的兩種方式:

1、手動開啟線程:

NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(thread1:) object:@"thread1"];
[thread start];

2翻翩、自動開啟方式:

[NSThread detachNewThreadSelector:@selector(thread1:) toTarget:self withObject:@"thread1"];

獲取當(dāng)前線程:
[NSThread currentThread];

線程的優(yōu)先級:(0-1)默認(rèn)是0.5
[NSThread setThreadPriority:1.0];

下面以加載一張網(wǎng)絡(luò)圖片為例具體介紹:

#import "ViewController.h"

#define kUrl @"http://store.storeimages.cdn-apple.com/8748/as-images.apple.com/is/image/AppleInc/aos/published/images/s/38/s38ga/rdgd/s38ga-rdgd-sel-201601?wid=848&hei=848&fmt=jpeg&qlt=80&op_sharpen=0&resMode=bicub&op_usm=0.5,0.5,0,0&iccEmbed=0&layer=comp&.v=1454777389943"

@interface ViewController ()

{

UIImageView *imageView;

UIImage *image;

}

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

self.view.backgroundColor = [UIColor brownColor];

//    消除導(dǎo)航欄的影響

self.edgesForExtendedLayout = UIRectEdgeNone;

#pragma mark - ---NSThread開辟線程的兩種方式*****

/*

*  創(chuàng)建手動開啟方式

*  第三個參數(shù):就是方法選擇器選擇方法的參數(shù)

*/

//    NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(thread1:) object:@"thread1"];

//    開啟線程

//[thread start];

/*

*創(chuàng)建并自動開啟方式

*/

[NSThread detachNewThreadSelector:@selector(thread1:) toTarget:self withObject:@"thread1"];

NSLog(@"viewDidload方法所在的線程 %@",[NSThread currentThread]);

imageView = [[UIImageView alloc]initWithFrame:CGRectMake(50, 50, 200, 200)];

[self.view addSubview:imageView];

}

// 在子線程執(zhí)行的方法

-(void)thread1:(NSString *)sender{

//    [NSThread currentThread] 獲取到當(dāng)前所在的信息

//NSThread *thread = [NSThread currentThread];

// thread.name = @"我是子線程";

// NSLog(@"thread1方法所在的線程%@",thread);

//    [NSThread isMainThread]判斷當(dāng)前線程是否是主線程

// BOOL ismainThread = [NSThread isMainThread];

// BOOL isMultiThread = [NSThread isMultiThreaded];

//    setThreadPriority 設(shè)置線程的優(yōu)先級(0-1)

//[NSThread setThreadPriority:1.0];

//    sleepForTimeInterval 讓線程休眠

//[NSThread sleepForTimeInterval:2];

#pragma ----

//    從網(wǎng)絡(luò)加載圖片拼接并將它轉(zhuǎn)換為data類型的數(shù)據(jù)

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:kUrl]];

image = [UIImage imageWithData:data];

//    waitUntilDone設(shè)為YES都许,意味著UI更新完才會去做其他操作

[self performSelectorOnMainThread:@selector(updateUI:) withObject:image waitUntilDone:YES];

}

-(void)updateUI:(UIImage *)kimage{

imageView.image = kimage;

NSLog(@"updateUI方法所在的線程%@",[NSThread currentThread]);


}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嫂冻,隨后出現(xiàn)的幾起案子梭稚,更是在濱河造成了極大的恐慌,老刑警劉巖絮吵,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異忱屑,居然都是意外死亡蹬敲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門莺戒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伴嗡,“玉大人,你說我怎么就攤上這事从铲”裥#” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵名段,是天一觀的道長阱扬。 經(jīng)常有香客問我,道長伸辟,這世上最難降的妖魔是什么麻惶? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮信夫,結(jié)果婚禮上窃蹋,老公的妹妹穿的比我還像新娘卡啰。我一直安慰自己,他們只是感情好警没,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布匈辱。 她就那樣靜靜地躺著,像睡著了一般杀迹。 火紅的嫁衣襯著肌膚如雪亡脸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天佛南,我揣著相機(jī)與錄音梗掰,去河邊找鬼。 笑死嗅回,一個胖子當(dāng)著我的面吹牛及穗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绵载,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼埂陆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了娃豹?” 一聲冷哼從身側(cè)響起焚虱,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懂版,沒想到半個月后鹃栽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躯畴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年民鼓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓬抄。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡丰嘉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嚷缭,到底是詐尸還是另有隱情饮亏,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布阅爽,位于F島的核電站路幸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏优床。R本人自食惡果不足惜劝赔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胆敞。 院中可真熱鬧着帽,春花似錦杂伟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至予借,卻和暖如春越平,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灵迫。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工秦叛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瀑粥。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓挣跋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親狞换。 傳聞我的和親對象是個殘疾皇子避咆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容