多線程概述

  1. 多線程在iOS開發(fā)中是一個(gè)比較常見也十分重要的一門技術(shù)弯淘,首先我們知道每一個(gè)程序運(yùn)行都會(huì)開啟一個(gè)進(jìn)程眼俊,而一個(gè)進(jìn)程想要執(zhí)行任務(wù)整份,必須得有線程(每個(gè)進(jìn)程至少需要一條線程),線程是進(jìn)程最基本的執(zhí)行單元拗踢,一個(gè)進(jìn)程所有的任務(wù)都在線程中執(zhí)行。
  2. 一個(gè)線程中的任務(wù)是串行的向臀,如果一個(gè)線程中有多個(gè)任務(wù)巢墅,那么只能一個(gè)一個(gè)的按照順序執(zhí)行這些任務(wù)。
  3. 所謂多線程就是一個(gè)進(jìn)程中開啟多條線程券膀,每條線程可以并行(同時(shí))執(zhí)行不同的任務(wù)君纫,多線程可以提高程序的執(zhí)行效率

多線程的原理:

同一時(shí)間,CPU只能處理1條線程三娩,只有1條線程在工作(執(zhí)行)多線程并發(fā)(同時(shí))執(zhí)行庵芭,其實(shí)是CPU快速地在多條線程之間調(diào)度(切換)如果CPU調(diào)度線程的時(shí)間足夠快,就造成了多線程并發(fā)執(zhí)行的假象雀监。如果線程非常非常多双吆,會(huì)發(fā)生什么情況?CPU會(huì)在N多線程之間調(diào)度会前,CPU會(huì)累死好乐,消耗大量的CPU資源每條線程被調(diào)度執(zhí)行的頻次會(huì)降低(線程的執(zhí)行效率降低)

多線程優(yōu)缺點(diǎn):

優(yōu)點(diǎn):
  1. 能適當(dāng)?shù)奶岣叱绦虻膱?zhí)行效率;
  2. 能適當(dāng)?shù)奶岣哔Y源利用率(CPU瓦宜,內(nèi)存利用率)
缺點(diǎn):
  1. 開啟線程需要占用一定的內(nèi)存空間(默認(rèn)情況下蔚万,主線程占用1M,子線程占用512KB)临庇,如果開啟大量的線程反璃,會(huì)占用大量的內(nèi)存空間昵慌,降低程序的性能
  2. 線程越多,CPU在調(diào)度線程上的開銷就越大
  3. 程序設(shè)計(jì)更加復(fù)雜:比如線程之間的通信淮蜈、多線程的數(shù)據(jù)共享

開啟多線程方式

  1. Pthread 基于比較底層的C語言
  2. NSThread 基于OC語言斋攀,面向?qū)ο螅芍苯硬僮骶€程對象
  3. GCD 旨在替代NSThread 梧田,充分利用設(shè)備的多核
  4. NSOperation 基于GCD淳蔼,比GCD多了一些功能,添加線程依賴裁眯,取消或暫停線程
GCD和NSOperation都是系統(tǒng)自動(dòng)管理生命周期鹉梨,功能頁比較強(qiáng)大,會(huì)經(jīng)常使用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末穿稳,一起剝皮案震驚了整個(gè)濱河市存皂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌司草,老刑警劉巖艰垂,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異埋虹,居然都是意外死亡猜憎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門搔课,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胰柑,“玉大人,你說我怎么就攤上這事爬泥〖硖郑” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵袍啡,是天一觀的道長踩官。 經(jīng)常有香客問我,道長境输,這世上最難降的妖魔是什么蔗牡? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮嗅剖,結(jié)果婚禮上辩越,老公的妹妹穿的比我還像新娘。我一直安慰自己信粮,他們只是感情好黔攒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般督惰。 火紅的嫁衣襯著肌膚如雪不傅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天赏胚,我揣著相機(jī)與錄音蛤签,去河邊找鬼。 笑死栅哀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的称龙。 我是一名探鬼主播留拾,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鲫尊!你這毒婦竟也來了痴柔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤疫向,失蹤者是張志新(化名)和其女友劉穎咳蔚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搔驼,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谈火,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舌涨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糯耍。...
    茶點(diǎn)故事閱讀 38,654評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖囊嘉,靈堂內(nèi)的尸體忽然破棺而出温技,到底是詐尸還是另有隱情,我是刑警寧澤扭粱,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布舵鳞,位于F島的核電站,受9級特大地震影響琢蛤,放射性物質(zhì)發(fā)生泄漏蜓堕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一虐块、第九天 我趴在偏房一處隱蔽的房頂上張望俩滥。 院中可真熱鬧,春花似錦贺奠、人聲如沸霜旧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挂据。三九已至以清,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間崎逃,已是汗流浹背掷倔。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留个绍,地道東北人勒葱。 一個(gè)月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像巴柿,于是被迫代替她去往敵國和親凛虽。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評論 2 349

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

  • 前言 在打算寫這篇多線層底層實(shí)現(xiàn)機(jī)制的時(shí)候广恢,突然發(fā)現(xiàn)自己對于計(jì)算機(jī)竟然懂得這么表面凯旋,對于CPU的工作原理都不完全清...
    進(jìn)無盡閱讀 6,385評論 2 11
  • Object C中創(chuàng)建線程的方法是什么?如果在主線程中執(zhí)行代碼钉迷,方法是什么至非?如果想延時(shí)執(zhí)行代碼、方法又是什么糠聪? 1...
    AlanGe閱讀 1,721評論 0 17
  • 本文概述 本篇文章將分四塊內(nèi)容對Java中的多線程機(jī)制進(jìn)行介紹:一. 多線程概述二. 實(shí)現(xiàn)多線程的兩種方式三. 多...
    Mr_Yanger閱讀 4,620評論 0 5
  • 又來到了一個(gè)老生常談的問題荒椭,應(yīng)用層軟件開發(fā)的程序員要不要了解和深入學(xué)習(xí)操作系統(tǒng)呢? 今天就這個(gè)問題開始舰蟆,來談?wù)劜?..
    tangsl閱讀 4,098評論 0 23
  • 1.多線程的簡單認(rèn)知 1.進(jìn)程和線程的認(rèn)知 進(jìn)程:一個(gè)正在運(yùn)行的程序就是一個(gè)進(jìn)程 一個(gè)進(jìn)程由一個(gè)或多個(gè)線程組成進(jìn)程...
    One蘋果OneDay閱讀 250評論 0 1