網(wǎng)絡(luò)與多線程(第一天)

1-- 基本概念

01進(jìn)程

? ? ? 是指在系統(tǒng)中正在運(yùn)行的一個應(yīng)用程序。每個進(jìn)程之間是獨(dú)立的碾褂,每個進(jìn)程均運(yùn)行在其專用且受保護(hù)的內(nèi)存空間內(nèi)。


02線程

2-1基本概念

? ? 1個進(jìn)程要想執(zhí)行任務(wù),必須得有線程(每1個進(jìn)程至少要有1條線程)秀睛,線程是進(jìn)程的基本執(zhí)行單元币他,一個進(jìn)程(程序)的所有任務(wù)都在線程中執(zhí)行坞靶。

2-2線程的串行

1個線程中任務(wù)的執(zhí)行是串行的,如果要在1個線程中執(zhí)行多個任務(wù)蝴悉,那么只能一個一個地按順序執(zhí)行這些任務(wù)彰阴。也就是說,在同一時間內(nèi)拍冠,1個線程只能執(zhí)行1個任務(wù)尿这。


03--多線程

3-1基本概念

即1個進(jìn)程中可以開啟多條線程,每條線程可以并行(同時)執(zhí)行不同的任務(wù)庆杜。


3-2線程的并行

并行即同時執(zhí)行射众。比如同時開啟3條線程分別下載3個文件(分別是文件A、文件B晃财、文件C叨橱。


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

在同一時間里,CPU只能處理1條線程,只有1條線程在工作(執(zhí)行)罗洗。多線程并發(fā)(同時)執(zhí)行愉舔,其實(shí)是CPU快速地在多條線程之間調(diào)度(切換),如果CPU調(diào)度線程的時間足夠快伙菜,就造成了多線程并發(fā)執(zhí)行的假象


3-4多線程優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

1)能適當(dāng)提高程序的執(zhí)行效率轩缤。

2)能適當(dāng)提高資源利用率(CPU、內(nèi)存利用率)

缺點(diǎn)

1)開啟線程需要占用一定的內(nèi)存空間(默認(rèn)情況下贩绕,主線程占用1M典奉,子線程占用512KB),如果開啟大量的線程丧叽,會占用大量的內(nèi)存空間卫玖,降低程序的性能。

2)線程越多踊淳,CPU在調(diào)度線

程上的開銷就越大假瞬。

3)程序設(shè)計(jì)更加復(fù)雜:比如線程之間的通信、多線程的數(shù)據(jù)共享


04--多線程在iOS開發(fā)中的應(yīng)用

4-1主線程

1)一個iOS程序運(yùn)行后迂尝,默認(rèn)會開啟1條線程脱茉,稱為“主線程”或“UI線程”。

2)作用垄开。刷新顯示UI,處理UI事件琴许。

4-2使用注意

1)不要將耗時操作放到主線程中去處理,會卡住線程溉躲。

2)和UI相關(guān)的刷新操作必須放到主線程中進(jìn)行處理榜田。


05--iOS中多線程的實(shí)現(xiàn)方案

5-1pthread

a.特點(diǎn):

(1)一套通用的多線程API; ? ?(2)適用于Unix\Linux\Windows等系統(tǒng) ; (3)跨平臺\可移植 ; ? ??(4)使用難度大 ?

b.使用語言:c語言 ??

?c.使用頻率:幾乎不用 ??

d.線程生命周期:由程序員進(jìn)行管理


5-2NSThread

a.特點(diǎn):

1)使用更加面向?qū)ο?/p>

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

b.使用語言:OC語言

c.使用頻率:偶爾使用

d.線程生命周期:由程序員進(jìn)行管理


5-3GCD

a.特點(diǎn):

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

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

b.使用語言:C語言

c.使用頻率:經(jīng)常使用

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


5-4NSOperation

a.特點(diǎn):

1)基于GCD(底層是GCD)

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

3)使用更加面向?qū)ο?/p>

b.使用語言:OC語言

c.使用頻率:經(jīng)常使用

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


2 pthread

圖1

3 NSThread

(1)NSThread的基本使用

圖2


(2)設(shè)置線程的屬性

圖3


(3)線程的狀態(tài)(了解)

圖4

(4)線程安全

01 前提:多個線程訪問同一塊資源會發(fā)生數(shù)據(jù)安全問題

02 解決方案:加互斥鎖

03 相關(guān)代碼:@synchronized(self){}

04 專業(yè)術(shù)語-線程同步

05 原子和非原子屬性(是否對setter方法加鎖)


(5)線程間通信

圖5


(6)如何計(jì)算代碼段的執(zhí)行時間

圖6


4--GCD

(1)GCD基本知識

01 兩個核心概念-隊(duì)列和任務(wù)

02 同步函數(shù)和異步函數(shù)


(2)GCD基本使用【重點(diǎn)】

01異步函數(shù)+并發(fā)隊(duì)列:開啟多條線程锻梳,并發(fā)執(zhí)行任務(wù)

02異步函數(shù)+串行隊(duì)列:開啟一條線程箭券,串行執(zhí)行任務(wù)

03同步函數(shù)+并發(fā)隊(duì)列:不開線程,串行執(zhí)行任務(wù)

04同步函數(shù)+串行隊(duì)列:不開線程疑枯,串行執(zhí)行任務(wù)

05異步函數(shù)+主隊(duì)列:不開線程辩块,在主線程中串行執(zhí)行任務(wù)

06同步函數(shù)+主隊(duì)列:不開線程,串行執(zhí)行任務(wù)(注意死鎖發(fā)生)

07注意同步函數(shù)和異步函數(shù)在執(zhí)行順序上面的差異


(3)GCD線程間通信


圖7


(4)GCD其它常用函數(shù)

圖8

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荆永,一起剝皮案震驚了整個濱河市废亭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌具钥,老刑警劉巖豆村,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氓拼,居然都是意外死亡你画,警方通過查閱死者的電腦和手機(jī)抵碟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坏匪,“玉大人拟逮,你說我怎么就攤上這事∈首遥” “怎么了敦迄?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凭迹。 經(jīng)常有香客問我罚屋,道長,這世上最難降的妖魔是什么嗅绸? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任脾猛,我火速辦了婚禮,結(jié)果婚禮上鱼鸠,老公的妹妹穿的比我還像新娘猛拴。我一直安慰自己,他們只是感情好蚀狰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布愉昆。 她就那樣靜靜地躺著,像睡著了一般麻蹋。 火紅的嫁衣襯著肌膚如雪跛溉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天扮授,我揣著相機(jī)與錄音芳室,去河邊找鬼。 笑死糙箍,一個胖子當(dāng)著我的面吹牛渤愁,可吹牛的內(nèi)容都是我干的牵祟。 我是一名探鬼主播深夯,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼诺苹!你這毒婦竟也來了咕晋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤收奔,失蹤者是張志新(化名)和其女友劉穎掌呜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坪哄,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡质蕉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年势篡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片模暗。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡禁悠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出兑宇,到底是詐尸還是另有隱情碍侦,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布隶糕,位于F島的核電站瓷产,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏枚驻。R本人自食惡果不足惜濒旦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望再登。 院中可真熱鬧疤估,春花似錦、人聲如沸霎冯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沈撞。三九已至慷荔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缠俺,已是汗流浹背显晶。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留壹士,地道東北人磷雇。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像躏救,于是被迫代替她去往敵國和親唯笙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

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