小驢拉磨之iOS進(jìn)階-多線程(2)——Pthread

11111.jpg

首先感謝CC老師的文章:http://www.reibang.com/p/eac934f5e389
由于這個(gè)使用的比較少拨与,幾乎不使用明未,我就炒一下CC老師的已做記錄,不在做擴(kuò)展了

前言

Pthread線程 (POSIX threads),簡(jiǎn)稱Pthreads,是線程的POSIX標(biāo)準(zhǔn)缘厢。該標(biāo)準(zhǔn)定義了創(chuàng)建和操作線程的一整套API萝毛,在類Unix操作系統(tǒng)(Unix楷力、Linux眉厨、Max OS X)中锌奴,都使用Pthreads作為操作系統(tǒng)的線程。連Windows操作系統(tǒng)也有它的移植版pthreads-win32憾股。
Pthread定義了一套C語言的類型鹿蜀、函數(shù)與常量箕慧,它以Pthread.h頭文件和一個(gè)線程庫實(shí)現(xiàn)。

數(shù)據(jù)類型

 pthread_t //線程ID
 pthread_attr_t //線程屬性

操縱函數(shù)

 pthread_create() //創(chuàng)建一個(gè)線程
pthread_exit() //終止當(dāng)前線程
pthread_cancel() //中斷另外一個(gè)線程的運(yùn)行
pthread_join()  //阻塞當(dāng)前的線程茴恰,直到另外一個(gè)線程運(yùn)行結(jié)束
pthread_attr_init() //初始化線程的屬性
pthread_attr_setdetachstate() //設(shè)置脫離狀態(tài)的屬性
pthread_attr_getdetachstate()  //獲取脫離狀態(tài)的屬性
pthread_attr_destory() //刪除線程的屬性
pthread_kill() //向線程發(fā)送一個(gè)信號(hào)

同步函數(shù)

用于mutex 和 條件變量

pthread_mutex_init() //初始化互斥鎖
pthread_mutex_destory() //刪除互斥鎖
pthread_mutex_lock() //占有互斥鎖(阻塞操縱)
pthread_mutex_trylock() //試圖占有互斥鎖
pthread_mutex_unlock() //釋放互斥鎖
pthread_cond_init() //初始化條件變量
pthread_cond_destory() //銷毀條件變量
pthread_cond_signal() //喚醒第一個(gè)調(diào)用等待而進(jìn)入睡眠的線程
pthread_cond_wait() //等待條件變量的特殊條件發(fā)生
pthread_attr_getschdparam()//獲取線程優(yōu)先級(jí)
pthread_attr_setschedparam() //設(shè)置線程優(yōu)先級(jí)

pthread iOS示例代碼

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    
    [self pthreadDemo];
}

-(void)pthreadDemo{
    
    /**
     pthread 是屬于 POSIX 多線程開發(fā)框架
     
     參數(shù):
     1.指向線程代號(hào)的指針
     2.線程的屬性
     3.指向函數(shù)的指針
     4.傳遞給該函數(shù)的參數(shù)
     
     返回值
     - 如果是0,標(biāo)示正確
     - 如果非0,標(biāo)示錯(cuò)誤代碼
     
     void *   (*)      (void *)
     返回值   (函數(shù)指針)  (參數(shù))
     void *  和OC中的  id 是等價(jià)的!
     
     
     */
    NSString * str = @"hello Miss CC";
    pthread_t threadId;
    /**
     - 在 ARC 開發(fā)中,如果涉及到和C語言中的相同的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,需要使用 __bridge "橋接"
     - 在 MRC 不需要
     */
    
    int result = pthread_create(&threadId, NULL, &demo, (__bridge  void *)(str));
   
    if (result == 0) {
        NSLog(@"OK");
    }else{
        NSLog(@"error %d",result);
    }
    
    
    
}

void * demo(void * param){
    NSLog(@"%@ %@",[NSThread currentThread],param);
    
    return NULL;
}

小結(jié)

C語言中的 void * 等價(jià)于 OC 中的id指針
在混合開發(fā)中颠焦,C與OC之間數(shù)據(jù)傳遞,需要使用__bridge進(jìn)行橋接往枣。在C語言環(huán)境需要自行內(nèi)存管理伐庭。
pthread 在iOS項(xiàng)目中使用的非常少見。

持續(xù)更新婉商,看過的求個(gè)喜歡????????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末似忧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子丈秩,更是在濱河造成了極大的恐慌盯捌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蘑秽,死亡現(xiàn)場(chǎng)離奇詭異饺著,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)肠牲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門幼衰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缀雳,你說我怎么就攤上這事渡嚣。” “怎么了肥印?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵识椰,是天一觀的道長。 經(jīng)常有香客問我深碱,道長腹鹉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任敷硅,我火速辦了婚禮功咒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绞蹦。我一直安慰自己力奋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布幽七。 她就那樣靜靜地躺著景殷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上滨彻,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音挪蹭,去河邊找鬼亭饵。 笑死,一個(gè)胖子當(dāng)著我的面吹牛梁厉,可吹牛的內(nèi)容都是我干的辜羊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼词顾,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼八秃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肉盹,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤昔驱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后上忍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骤肛,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年窍蓝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腋颠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吓笙,死狀恐怖淑玫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情面睛,我是刑警寧澤絮蒿,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站侮穿,受9級(jí)特大地震影響歌径,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜亲茅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一回铛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧克锣,春花似錦茵肃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巾乳,卻和暖如春您没,著一層夾襖步出監(jiān)牢的瞬間鸟召,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國打工氨鹏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留欧募,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓仆抵,卻偏偏與公主長得像跟继,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子镣丑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

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

  • 本文將從以下幾個(gè)部分來介紹多線程舔糖。 第一部分介紹多線程的基本原理。 第二部分介紹Run loop莺匠。 第三部分介紹多...
    曲年閱讀 1,266評(píng)論 2 14
  • 學(xué)習(xí)多線程金吗,轉(zhuǎn)載兩篇大神的帖子,留著以后回顧慨蛙!第一篇:關(guān)于iOS多線程辽聊,你看我就夠了 第二篇:GCD使用經(jīng)驗(yàn)與技巧...
    John_LS閱讀 620評(píng)論 0 3
  • 轉(zhuǎn)自:Youtherhttps://www.cnblogs.com/youtherhome/archive/201...
    njukay閱讀 1,615評(píng)論 0 52
  • iOS中,只有主線程跟Cocoa關(guān)聯(lián)期贫,也即是在這個(gè)線程中跟匆,更新UI總是有效的,如果在其他線程中更新UI有時(shí)候會(huì)成功...
    mengyingguo閱讀 521評(píng)論 0 0
  • 在這篇文章中通砍,我將為你整理一下 iOS 開發(fā)中幾種多線程方案玛臂,以及其使用方法和注意事項(xiàng)。當(dāng)然也會(huì)給出幾種多線程的案...
    被吹落的風(fēng)閱讀 123評(píng)論 0 0