關(guān)于進(jìn)程和線程的理解

一陪白、進(jìn)程與線程

1颈走、什么是進(jìn)程?

  • 進(jìn)程是指在系統(tǒng)中正在運(yùn)行的一個應(yīng)用程序咱士,它是系統(tǒng)分配資源的基本單元立由。
  • 每個進(jìn)程之間是獨(dú)立的轧钓,均運(yùn)行在其專用且受保護(hù)的內(nèi)存空間內(nèi),擁有獨(dú)立運(yùn)行所需的全部資源锐膜。
image

比如同時打開QQ毕箍、Xcode,系統(tǒng)就會分別啟動2個進(jìn)程枣耀,通過“活動監(jiān)視器”可以查看Mac系統(tǒng)中所開啟的進(jìn)程霉晕。

2、什么是線程捞奕?

  • 線程是CPU調(diào)度的最小單元牺堰,也是進(jìn)程的基本執(zhí)行單元,進(jìn)程(程序)的所有任務(wù)都在線程中執(zhí)行颅围,線程是進(jìn)程中的一個實體伟葫。
  • 一個進(jìn)程想要執(zhí)行任務(wù),必須至少有一條線程院促。應(yīng)用程序啟動的時候筏养,系統(tǒng)會默認(rèn)開啟一條線程,也就是主線程常拓。
  • 同一個進(jìn)程內(nèi)的線程共享進(jìn)程資源渐溶。

比如使用酷狗播放音樂、使用迅雷下載電影弄抬,都需要在線程中執(zhí)行

image

3茎辐、線程的串行

一個線程中任務(wù)的執(zhí)行是串行的,如果要在一個線程中執(zhí)行多個任務(wù)掂恕,那么只能一個一個地按順序執(zhí)行這些任務(wù)拖陆,也就是說,在同一時間內(nèi)懊亡,一個線程只能執(zhí)行一個任務(wù)依啰。

比如在一個線程中下載3個文件(分別是文件A、文件B店枣、文件C)

image

二速警、多進(jìn)程與多線程

1、多進(jìn)程

打開mac的活動監(jiān)視器鸯两,可以看到很多個進(jìn)程同時運(yùn)行

  • 進(jìn)程是程序在計算機(jī)上的一次執(zhí)行活動坏瞄。當(dāng)你運(yùn)行一個程序,你就啟動了一個進(jìn)程甩卓。顯然鸠匀,程序是死的(靜態(tài)的),進(jìn)程是活的(動態(tài)的)逾柿。
  • 進(jìn)程可以分為系統(tǒng)進(jìn)程和用戶進(jìn)程缀棍。凡是用于完成操作系統(tǒng)的各種功能的進(jìn)程就是系統(tǒng)進(jìn)程宅此,它們就是處于運(yùn)行狀態(tài)下的操作系統(tǒng)本身;所有由用戶啟動的進(jìn)程都是用戶進(jìn)程爬范。
  • 進(jìn)程又被細(xì)化為線程父腕,也就是一個進(jìn)程下有多個能獨(dú)立運(yùn)行的更小的單元。在同一個時間里青瀑,一個計算機(jī)系統(tǒng)中如果允許兩個或兩個以上的進(jìn)程處于運(yùn)行狀態(tài)璧亮,這便是多進(jìn)程。

2斥难、多線程

一個進(jìn)程中可以開啟多條線程枝嘶,每條線程可以并行(同時)執(zhí)行不同的任務(wù),多線程技術(shù)可以提高程序的執(zhí)行效率(進(jìn)程→車間哑诊,線程→車間工人)

比如同時開啟3條線程分別下載3個文件(分別是文件A群扶、文件B、文件C)

image
image

3镀裤、多線程的原理

同一時間竞阐,CPU只能處理一條線程,只有一條線程在工作(執(zhí)行)暑劝,多線程并發(fā)(同時)執(zhí)行骆莹,其實是CPU快速地在多條線程之間調(diào)度(切換),如果CPU調(diào)度線程的時間足夠快担猛,就造成了多線程并發(fā)執(zhí)行的假象幕垦。

4、思考:如果線程非常非常多毁习,會發(fā)生什么情況智嚷?

答:CPU會在N多線程之間調(diào)度卖丸,消耗大量的CPU資源纺且,每條線程被調(diào)度執(zhí)行的頻次會降低(線程的執(zhí)行效率降低)

5、多線程的優(yōu)點(diǎn)

  • 能適當(dāng)提高程序的執(zhí)行效率
  • 能適當(dāng)提高資源利用率(CPU稍浆、內(nèi)存利用率)

6载碌、多線程的缺點(diǎn)

  • 開啟線程需要占用一定的內(nèi)存空間(默認(rèn)情況下,主線程占用1M衅枫,子線程占用512KB)嫁艇,如果開啟大量的線程,會占用大量的內(nèi)存空間弦撩,降低程序的性能
  • 線程越多步咪,CPU在調(diào)度線程上的開銷就越大
  • 程序設(shè)計更加復(fù)雜:比如線程之間的通信、多線程的數(shù)據(jù)共享

7益楼、多線程在iOS開發(fā)中的應(yīng)用

主線程:一個iOS程序運(yùn)行后猾漫,默認(rèn)會開啟一條線程点晴,稱為“主線程”或“UI線程”
主要作用:顯示\刷新UI界面,處理UI事件(比如點(diǎn)擊事件悯周、滾動事件粒督、拖拽事件等)
使用注意:別將比較耗時的操作放到主線程中。耗時操作會卡住主線程禽翼,嚴(yán)重影響UI的流暢度屠橄,給用戶一種“卡”的壞體驗

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市闰挡,隨后出現(xiàn)的幾起案子锐墙,更是在濱河造成了極大的恐慌,老刑警劉巖解总,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贮匕,死亡現(xiàn)場離奇詭異,居然都是意外死亡花枫,警方通過查閱死者的電腦和手機(jī)刻盐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來劳翰,“玉大人敦锌,你說我怎么就攤上這事〖阳ぃ” “怎么了乙墙?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長生均。 經(jīng)常有香客問我听想,道長,這世上最難降的妖魔是什么马胧? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任汉买,我火速辦了婚禮,結(jié)果婚禮上佩脊,老公的妹妹穿的比我還像新娘蛙粘。我一直安慰自己,他們只是感情好威彰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布出牧。 她就那樣靜靜地躺著,像睡著了一般歇盼。 火紅的嫁衣襯著肌膚如雪舔痕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機(jī)與錄音伯复,去河邊找鬼盈咳。 笑死,一個胖子當(dāng)著我的面吹牛边翼,可吹牛的內(nèi)容都是我干的鱼响。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼组底,長吁一口氣:“原來是場噩夢啊……” “哼丈积!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起债鸡,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤江滨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后厌均,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唬滑,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年棺弊,在試婚紗的時候發(fā)現(xiàn)自己被綠了晶密。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡模她,死狀恐怖稻艰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侈净,我是刑警寧澤尊勿,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站畜侦,受9級特大地震影響元扔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旋膳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一澎语、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧溺忧,春花似錦咏连、人聲如沸盯孙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽振惰。三九已至歌溉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背痛垛。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工草慧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匙头。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓漫谷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蹂析。 傳聞我的和親對象是個殘疾皇子舔示,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355