多線程(Pthread/NSThread)

Pthread簡單使用

// 1. 創(chuàng)建線程對象
pthread_t thread;    
// 2. 創(chuàng)建線程
/*
   1>第一個(gè)參數(shù)
     線程對象地址
   2>第二個(gè)參數(shù)
     線程屬性 不需要傳NULL
   3>第三個(gè)參數(shù)
     指向函數(shù)的指針
   4>函數(shù)需要接受的參數(shù)
     函數(shù)需要傳遞的參數(shù)
*/
pthread_create(&thread, NULL, task, NULL);

// 判斷兩條線程是否相等
pthread_equal(threadA, threadB);

void *task(void *param)
{
   return NULL;
}

NSThread基本使用

//線程生命周期: 任務(wù)執(zhí)行完畢后釋放線程
// 創(chuàng)建線程(第一種)
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(text:) object:@""];
// 線程優(yōu)先級(0~1)默認(rèn)0.5 只是提高調(diào)用概率 不是100%調(diào)用
thread.threadPriority
// 啟動線程
[thread start];

// 創(chuàng)建線程(第二種)
[NSThread detachNewThreadSelector:@selector(text:) toTarget:self withObject:@""];

// 創(chuàng)建線程(第三種)
[self performSelectorInBackground:@selector(text:) withObject:@""];

線程的狀態(tài)

// 創(chuàng)建線程后 處于新建線程狀態(tài)
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(text:) object:@""];
// 開啟線程  線程會進(jìn)入"可調(diào)度線程池里"等待執(zhí)行 就緒<--->運(yùn)行
[thread start];
// 線程的阻塞狀態(tài)
[NSThread sleepUntilDate:<#(nonnull NSDate *)#>];
[NSThread sleepForTimeInterval:<#(NSTimeInterval)#>];
// 強(qiáng)制停止線程 線程死亡
[NSThread exit];

線程的安全

// 多個(gè)線程同時(shí)訪問一塊資源 會引發(fā)數(shù)據(jù)錯(cuò)亂或數(shù)據(jù)安全問題 (存取錢問題)
// 1. 互斥鎖 (會消耗大量CPU)
@synchronized (self) {
    // 執(zhí)行代碼
}
// 原子屬性(atomic) 非原子屬性(nonatomic)
// atomic:會對屬性setter方法自動加鎖

線程間通訊

// 一個(gè)線程任務(wù)執(zhí)行完成后 轉(zhuǎn)到另一個(gè)線程執(zhí)行其他任務(wù)
// 回主線程執(zhí)行方法
[self performSelectorOnMainThread:<#(nonnull SEL)#> withObject:<#(nullable id)#> waitUntilDone:<#(BOOL)#>]
// 到其他線程執(zhí)行方法
[self performSelector:<#(nonnull SEL)#> onThread:<#(nonnull NSThread *)#> withObject:<#(nullable id)#> waitUntilDone:<#(BOOL)#>];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滨攻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌燃领,老刑警劉巖块茁,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囤采,死亡現(xiàn)場離奇詭異悲没,居然都是意外死亡够傍,警方通過查閱死者的電腦和手機(jī)畜挥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門仔粥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蟹但,你說我怎么就攤上這事躯泰。” “怎么了华糖?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵麦向,是天一觀的道長。 經(jīng)常有香客問我客叉,道長诵竭,這世上最難降的妖魔是什么景描? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮秀撇,結(jié)果婚禮上超棺,老公的妹妹穿的比我還像新娘。我一直安慰自己呵燕,他們只是感情好棠绘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著再扭,像睡著了一般氧苍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泛范,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天让虐,我揣著相機(jī)與錄音,去河邊找鬼罢荡。 笑死赡突,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的区赵。 我是一名探鬼主播惭缰,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼笼才!你這毒婦竟也來了漱受?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤骡送,失蹤者是張志新(化名)和其女友劉穎昂羡,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摔踱,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡虐先,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了昌渤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赴穗。...
    茶點(diǎn)故事閱讀 40,115評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡憔四,死狀恐怖膀息,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情了赵,我是刑警寧澤潜支,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站柿汛,受9級特大地震影響冗酿,放射性物質(zhì)發(fā)生泄漏埠对。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一裁替、第九天 我趴在偏房一處隱蔽的房頂上張望项玛。 院中可真熱鬧,春花似錦弱判、人聲如沸襟沮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽开伏。三九已至,卻和暖如春遭商,著一層夾襖步出監(jiān)牢的瞬間固灵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工劫流, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留巫玻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓祠汇,卻偏偏與公主長得像大审,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子座哩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評論 2 355

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