iOS學習筆記之多線程

前言

什么是線程燕耿?

線程是能夠獨立運行的基本單位颖变,也是獨立調(diào)度和分派的基本單位。

什么是進程饮焦?

進程是指在系統(tǒng)中正在運行的一個應用程序琼掠,就是一段程序的執(zhí)行過程,它具有一定獨立功能的程序關(guān)于某次數(shù)據(jù)集合的一次運行活動皆串,它是操作系統(tǒng)分配資源的基本單元。每個進程之間是相互獨立的, 每個進程均運行在其專用且受保護的內(nèi)存空間內(nèi)眉枕。

進程和線程的關(guān)系

線程是進程的執(zhí)行單元恶复,進程的所有任務(wù)都在線程中執(zhí)行;
線程是 CPU 調(diào)用的最小單位;
進程是 CPU 分配資源和調(diào)度的單位;
一個程序可以對應過個進程,一個進程中可有多個線程,但至少要有一條線程;
同一個進程內(nèi)的線程共享進程資源怜森。

相同點:

進程和線程都是有操作系統(tǒng)所提供的程序運行的基本單元,系統(tǒng)利用這些基本單元實現(xiàn)系統(tǒng)對應用程序的并發(fā)性谤牡。

不同點:

  • 進程和線程的主要差別在于他們是不同的操作系統(tǒng)資源管理方式副硅。
  • 進程有獨立的地址空間,一個進程crash后翅萤,在保護模式下不會對其他進程產(chǎn)生影響,而線程只是一個進程中的不同執(zhí)行路徑恐疲。線程有自己的堆棧和局部變量,但線程之間沒有單獨的地址空間套么。一個線程crash就等于整個進程crash培己。
    多進程的程序比單線程的程序健壯,但在進程切換時胚泌,耗費資源較大省咨,效率要差一些。但對于一些要求同時進行并且又要共享某些變量的并發(fā)操作玷室,只能用線程零蓉,不能用進程。

什么是多線程穷缤?

多線程是指實現(xiàn)多個線程并發(fā)執(zhí)行的技術(shù)敌蜂。

什么是并發(fā)?

并發(fā)是指一個時間段中有幾個程序都處于已啟動運行到運行完畢之間津肛,且這幾個程序都是在同一個處理機上運行章喉,但任一個時刻點上只有一個程序在處理機上運行。

多線程的優(yōu)點和缺點

優(yōu)點

可以大大提交軟件的執(zhí)行效率和資源(CPU身坐、內(nèi)存)利用率囊陡。

缺點

當線程過多會消耗大量的資源,每開一條線程也是需要耗費資源的(iOS主線程占用1MB內(nèi)存空間掀亥,子線程占用512KB)。

iOS開發(fā)中的多線程

iOS程序在啟動后會自動開啟一個線程妥色,稱為主線程搪花,用來顯示、刷新UI界面嘹害,處理點擊撮竿、滾動等事件,所以耗費時間的事件(比如網(wǎng)絡(luò)請求笔呀、磁盤操作等)盡量不要放在主線程幢踏,避免造成阻塞主線程造成界面卡頓。

線程執(zhí)行任務(wù)方式分為:

  • 異步執(zhí)行

異步是指在多線程中许师,進程A在執(zhí)行的進程線程B不等待線程A是否執(zhí)行完成房蝉,而是直接執(zhí)行它的相應操作僚匆。

  • 同步執(zhí)行

同步執(zhí)行指的是在多線程中,一個進程A在執(zhí)行的時候搭幻,若線程A需要一段時間才能執(zhí)行完成咧擂,那么另外一個線程B將會一直等待下去,直到線程A執(zhí)行完成才會繼續(xù)執(zhí)行檀蹋。

在iOS開發(fā)過程中多線程的實現(xiàn)方式有:

  • pthread

  • NSThread

  • NSOperation

  • GCD

iOS多線程編程技術(shù)實現(xiàn)方式

pthread

iOS學習筆記之pthread多線程編程

NSThread

iOS學習筆記之NSThread多線程編程

GCD

iOS學習筆記之GCD多線程編程

NSOperation

iOS學習筆記之NSOperation多線程編程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末松申,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子俯逾,更是在濱河造成了極大的恐慌贸桶,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桌肴,死亡現(xiàn)場離奇詭異皇筛,居然都是意外死亡,警方通過查閱死者的電腦和手機识脆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門设联,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灼捂,你說我怎么就攤上這事离例。” “怎么了悉稠?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵宫蛆,是天一觀的道長。 經(jīng)常有香客問我的猛,道長耀盗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任卦尊,我火速辦了婚禮叛拷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘岂却。我一直安慰自己忿薇,他們只是感情好,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布躏哩。 她就那樣靜靜地躺著署浩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扫尺。 梳的紋絲不亂的頭發(fā)上筋栋,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機與錄音正驻,去河邊找鬼弊攘。 笑死抢腐,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的肴颊。 我是一名探鬼主播氓栈,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼婿着!你這毒婦竟也來了授瘦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤竟宋,失蹤者是張志新(化名)和其女友劉穎提完,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丘侠,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡徒欣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蜗字。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片打肝。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挪捕,靈堂內(nèi)的尸體忽然破棺而出粗梭,到底是詐尸還是另有隱情,我是刑警寧澤级零,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布断医,位于F島的核電站,受9級特大地震影響奏纪,放射性物質(zhì)發(fā)生泄漏鉴嗤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一序调、第九天 我趴在偏房一處隱蔽的房頂上張望醉锅。 院中可真熱鬧,春花似錦发绢、人聲如沸硬耍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至此虑,卻和暖如春甚纲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朦前。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工介杆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鹃操,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓春哨,卻偏偏與公主長得像荆隘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赴背,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349