多線程基本概念

1.進程

? ? ? 進程是指在系統(tǒng)中正在運行的一個應用程序舞虱。每個進程之間是獨立的,每個進程均運行在其專用且受保護的內存空間內母市。

2.線程

? ? ?· ??1個進程要想執(zhí)行任務砾嫉,必須得有線程(每1個進程至少要有1條線程),線程是進程的基本執(zhí)行單元窒篱,一個進程(程序)的所有任務都在線程中執(zhí)行.

? ? ?· ??1個線程中任務的執(zhí)行是串行的焕刮,如果要在1個線程中執(zhí)行多個任務舶沿,那么只能一個一個地按順序執(zhí)行這些任務。也就是說配并,在同一時間內括荡,1個線程只能執(zhí)行1個任務。

3.多線程

基本概念

? ? ? ?即1個進程中可以開啟多條線程溉旋,每條線程可以并行(同時)執(zhí)行不同的任務畸冲。

線程的并行

? ? ? ·?并行即同時執(zhí)行。比如同時開啟3條線程分別下載3個文件(分別是文件A观腊、文件B邑闲、文件C)。

4.多線程并發(fā)執(zhí)行的原理

? ? ? ?· 在同一時間里梧油,CPU只能處理1條線程苫耸,只有1條線程在工作(執(zhí)行)。多線程并發(fā)(同時)執(zhí)行儡陨,其實是CPU快速地在多條線程之間調度(切換)褪子,如果CPU調度線程的時間足夠快,就造成了多線程并發(fā)執(zhí)行的假象

5.多線程優(yōu)缺點

優(yōu)點

1)能適當提高程序的執(zhí)行效率骗村。

2)能適當提高資源利用率(CPU嫌褪、內存利用率)

缺點

1)開啟線程需要占用一定的內存空間(默認情況下,主線程占用1M胚股,子線程占用512KB)笼痛,如果開啟大量的線程寨典,會占用大量的內存空間破喻,降低程序的性能阴孟。

2)線程越多湿蛔,CPU在調度線程上的開銷就越大满钟。

3)程序設計更加復雜:比如線程之間的通信丑掺、多線程的數據共享

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

6. 主線程

1)一個iOS程序運行后谷浅,默認會開啟1條線程秘血,稱為“主線程”或“UI線程”即彪。

2)作用紧唱。刷新顯示UI,處理UI事件。

?使用注意:

1)不要將耗時操作放到主線程中去處理隶校,會卡住線程漏益。

2)和UI相關的刷新操作必須放到主線程中進行處理。

7. iOS中多線程的實現(xiàn)方案

7-1. pthread:

a.特點:

1)一套通用的多線程API

2)適用于Unix\Linux\Windows等系統(tǒng)

3)跨平臺\可移植

4)使用難度大

b.使用語言:c語言

c.使用頻率:幾乎不用

d.線程生命周期:由程序員進行管理

7-2. NSThread

a.特點:

1)使用更加面向對象

2)簡單易用深胳,可直接操作線程對象

b.使用語言:OC語言

c.使用頻率:偶爾使用

d.線程生命周期:由程序員進行管理

7-3. GCD

a.特點:

1)旨在替代NSThread等線程技術

2)充分利用設備的多核(自動)

b.使用語言:C語言

c.使用頻率:經常使用

d.線程生命周期:自動管理

7-4. NSOperation

a.特點:

1)基于GCD(底層是GCD)

2)比GCD多了一些更簡單實用的功能

3)使用更加面向對象

b.使用語言:OC語言

c.使用頻率:經常使用

d.線程生命周期:自動管理

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末绰疤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子舞终,更是在濱河造成了極大的恐慌轻庆,老刑警劉巖癣猾,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異余爆,居然都是意外死亡纷宇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門蛾方,熙熙樓的掌柜王于貴愁眉苦臉地迎上來像捶,“玉大人,你說我怎么就攤上這事桩砰⊥卮海” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵亚隅,是天一觀的道長硼莽。 經常有香客問我,道長枢步,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任渐尿,我火速辦了婚禮醉途,結果婚禮上,老公的妹妹穿的比我還像新娘砖茸。我一直安慰自己隘擎,他們只是感情好,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布凉夯。 她就那樣靜靜地躺著货葬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪劲够。 梳的紋絲不亂的頭發(fā)上震桶,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音征绎,去河邊找鬼蹲姐。 笑死,一個胖子當著我的面吹牛人柿,可吹牛的內容都是我干的柴墩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼凫岖,長吁一口氣:“原來是場噩夢啊……” “哼江咳!你這毒婦竟也來了?” 一聲冷哼從身側響起哥放,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤歼指,失蹤者是張志新(化名)和其女友劉穎爹土,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體东臀,經...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡着饥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了惰赋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宰掉。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赁濒,靈堂內的尸體忽然破棺而出轨奄,到底是詐尸還是另有隱情,我是刑警寧澤拒炎,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布挪拟,位于F島的核電站,受9級特大地震影響击你,放射性物質發(fā)生泄漏玉组。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一丁侄、第九天 我趴在偏房一處隱蔽的房頂上張望惯雳。 院中可真熱鬧,春花似錦鸿摇、人聲如沸石景。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潮孽。三九已至,卻和暖如春筷黔,著一層夾襖步出監(jiān)牢的瞬間往史,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工佛舱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留怠堪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓名眉,卻偏偏與公主長得像粟矿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子损拢,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內容

  • 學習多線程的目的:就是將耗時操作放到后臺去執(zhí)行陌粹。 基本概念進程? 進程是指在系統(tǒng)中正在運行的一個應用程序? 每個進...
    6ffd6634d577閱讀 590評論 0 1
  • Object C中創(chuàng)建線程的方法是什么?如果在主線程中執(zhí)行代碼福压,方法是什么掏秩?如果想延時執(zhí)行代碼或舞、方法又是什么? 1...
    AlanGe閱讀 1,746評論 0 17
  • 1、什么是多線程 多線程(英語:multithreading)邮破,是指從軟件或者硬件上實現(xiàn)多個線程并發(fā)執(zhí)行的技術诈豌。具...
    Laughingg閱讀 676評論 0 4
  • 多線程:多線程可以提升程序運行的效率,能夠同時處理多種不同的任務,避免處理一個任務的同時擱置其他任務,造成程序卡住...
    letaibai閱讀 270評論 0 0
  • 又來到了一個老生常談的問題,應用層軟件開發(fā)的程序員要不要了解和深入學習操作系統(tǒng)呢抒和? 今天就這個問題開始矫渔,來談談操...
    tangsl閱讀 4,134評論 0 23