淺析iOS多線程技術(概述)


前言

簡書的賬號其實申請很久了捂寿,因為工(自)作(己)的(很)原(懶)因,就沒有怎么寫博客抬伺,但作為一名"偏執(zhí)的技術狂"(偽技術)怎顾,我還是覺得需要寫博客读慎,所以也就寫下了這篇博客了。

基本概念

在了解和學習iOS的多線程技術之前我們需要先了解幾個概念

  • 進程 所謂的進程指的是在系統中正在運行的一個應用程序槐雾,其實夭委,每個進程之間都是獨立的,每個進程俊運行在其專用且受保護的內存空間之中募强。
  • 線程 線程其實就是一個進程(應用程序)執(zhí)行任務所需要的必備條件株灸,意思就是進程的所有任務都是在線程中完成的,每個進程都至少有一個線程擎值,而這至少為一個的線程就叫做</font>主線程慌烧。
  • 多線程概念 在一個進程中,可以開啟多個線程同時進行工作鸠儿,可以多條線程并發(fā)執(zhí)行不同的任務杏死,多條線程并發(fā)執(zhí)行,而多線程技術也是依賴于多核CPU捆交,所謂的多線程并發(fā),其實就是CPU在快速的切換多條線程之間的調度腐巢。</font>
  • iOS主線程概念 在iOS中的主線程品追,其實就是指一個iOS程序運行后,會默認開啟一條線程冯丙,而這個線程我們就稱之為主線程肉瓦,也有一些說法叫做UI線程遭京,而之所以叫做UI線程,是因為泞莉,在iOS程序中哪雕,處理無論是處理UI事件(比如點擊事件、滑動事件鲫趁、拖拽事件等等)以及顯示或者刷新UI界面都是在主線程完成的斯嚎,子線程并不具備處理這些事件的能力。

iOS中多線程技術的優(yōu)缺點

  • 優(yōu)點

  • 優(yōu)點一:在iOS中多線程技術的優(yōu)點可想而知挨厚,那就是它能適當的提高程序的執(zhí)行效率堡僻,舉個,好比一頭牛耕一畝地和石頭牛耕一畝地的區(qū)別

  • 優(yōu)點二:無論是從CPU還是從內存方面疫剃,都能有效的提高這些資源的利用率

  • 缺點 眾所周知钉疫,創(chuàng)建程序是有開銷,就好比你拉獅頭牛去耕地巢价,那十頭牛也是需要東西去喂養(yǎng)的牲阁,而在iOS程序下也是一樣的,在iOS下開啟多線程的成本就是:內核數據結構的上漲(一個線程大約1kb的量)壤躲、棾蔷眨空間的上漲等等

  • 缺點一:如果大量開啟線程,則會降低iOS程序的性能</font>

  • 缺點二:線程越多柒爵,CPU的在調度線程上得開銷就越大役电,從而會產生耗電加速等一些問題

  • 缺點三:線程開啟的越多,應用程序的設計就會更加復雜棉胀,比如說:線程之間的通信問題法瑟,多線程之間數據共享的一些問題就會隨之而來,所以在實際的iOS開發(fā)當中唁奢,多線程只是適當的開啟霎挟,而并不能大量的開啟。

iOS多線程的實現方案

在這部分內容中麻掸,我會詳細的進行分析和解答酥夭,所以在這里就直接寫iOS多線程的實現方案了

  • pthread 一套基于C語言的Unix/Linux/Windows等系統的多線程技術方案,可跨平臺脊奋、可移植方案熬北,缺點就是線程生命周期需要手動管理。
  • NSThread 基于OC語言的多線程實現方案诚隙,相對于pehread而言讶隐,更加面向對象開發(fā),優(yōu)點就是可以直接對線程進行操作久又,缺點任然是需要手動管理線程的生命周期
  • GCD 基于C語言開發(fā)巫延,iOS中多線程的重要實現方案之一效五,充分利用了設備的多核性質,線程生命周期不需要手動管理
  • NSOPeration 基于OC開發(fā)炉峰,其本質是蘋果基于GCD的一套封裝畏妖,保留了GCD的優(yōu)點,使之更加面向對象開發(fā)

下一篇博客將重點講解這四種多線程技術在iOS開發(fā)中的實際應用疼阔。戒劫。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末竿开,一起剝皮案震驚了整個濱河市谱仪,隨后出現的幾起案子,更是在濱河造成了極大的恐慌否彩,老刑警劉巖疯攒,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異列荔,居然都是意外死亡敬尺,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門贴浙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砂吞,“玉大人,你說我怎么就攤上這事崎溃◎咧保” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵袁串,是天一觀的道長概而。 經常有香客問我,道長囱修,這世上最難降的妖魔是什么赎瑰? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮破镰,結果婚禮上餐曼,老公的妹妹穿的比我還像新娘。我一直安慰自己鲜漩,他們只是感情好源譬,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著孕似,像睡著了一般瓶佳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鳞青,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天霸饲,我揣著相機與錄音,去河邊找鬼臂拓。 笑死厚脉,一個胖子當著我的面吹牛,可吹牛的內容都是我干的胶惰。 我是一名探鬼主播傻工,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼孵滞!你這毒婦竟也來了中捆?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤坊饶,失蹤者是張志新(化名)和其女友劉穎泄伪,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體匿级,經...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡蟋滴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了痘绎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片津函。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖孤页,靈堂內的尸體忽然破棺而出尔苦,到底是詐尸還是另有隱情,我是刑警寧澤行施,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布允坚,位于F島的核電站,受9級特大地震影響悲龟,放射性物質發(fā)生泄漏屋讶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一须教、第九天 我趴在偏房一處隱蔽的房頂上張望皿渗。 院中可真熱鬧,春花似錦轻腺、人聲如沸乐疆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挤土。三九已至,卻和暖如春误算,著一層夾襖步出監(jiān)牢的瞬間仰美,已是汗流浹背迷殿。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留咖杂,地道東北人庆寺。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像诉字,于是被迫代替她去往敵國和親懦尝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內容