iOS 進(jìn)程&線程&多線程

進(jìn)程

  • 進(jìn)程是在系統(tǒng)中正在運(yùn)行的一個(gè)應(yīng)用程序
  • 每個(gè)進(jìn)程之間是獨(dú)立的,每個(gè)進(jìn)程皆運(yùn)行在其專用且受保護(hù)的內(nèi)存空間內(nèi)
  • 一個(gè)應(yīng)用程序可能對(duì)應(yīng)多個(gè)進(jìn)程。

線程

  • 一個(gè)進(jìn)程如果想要執(zhí)行任務(wù),必須得有一個(gè)線程(一個(gè)進(jìn)程至少得有一條線程)
  • 一個(gè)進(jìn)程的所有任務(wù)都在線程中執(zhí)行

線程的串行

  • 如果要在一個(gè)線程中執(zhí)行多個(gè)任務(wù),那么只能一個(gè)一個(gè)的按順序執(zhí)行任務(wù),同一時(shí)間內(nèi)一個(gè)線程只能執(zhí)行一個(gè)任務(wù)。

多線程

  • 一個(gè)進(jìn)程中可以開(kāi)啟多條線程,每條線程可以(同時(shí))執(zhí)行不同的任務(wù)
  • 原理:同意時(shí)間CPU只能處理1條線程,只有一條線程在工作,多線程并發(fā)執(zhí)行時(shí),其實(shí)是在CPU之間切換。
  • 注意:如果線程太多,CPU在多條線程之間切換,會(huì)消耗大量的CPU資源(通常3~5條線程就可以了)。
  • 優(yōu)點(diǎn):能適當(dāng)提高程序的執(zhí)行效率,提高資源的利用率。
  • 缺點(diǎn):線程越多,會(huì)降低程序的性能

多線程的應(yīng)用

什么是主線程

  • 一個(gè)iOS程序運(yùn)行之后,會(huì)默認(rèn)開(kāi)啟一條線程,稱為主線程(UI線程)
  • 作用:
    • 顯示/刷新UI界面
    • 處理UI事件(比如點(diǎn)擊事件,拖拽滾動(dòng)...)
  • 注意:
    • 耗時(shí)操作不應(yīng)該放在主線程,因?yàn)楹臅r(shí)操作會(huì)卡住主線程會(huì)影響UI流暢度,會(huì)有一種卡頓的感覺(jué)(應(yīng)該將耗時(shí)操作放到子線程「后臺(tái)線程、非主線程」當(dāng)中)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iOS多線程編程 基本知識(shí) 1. 進(jìn)程(process) 進(jìn)程是指在系統(tǒng)中正在運(yùn)行的一個(gè)應(yīng)用程序,就是一段程序的執(zhí)...
    陵無(wú)山閱讀 6,362評(píng)論 1 14
  • 又來(lái)到了一個(gè)老生常談的問(wèn)題,應(yīng)用層軟件開(kāi)發(fā)的程序員要不要了解和深入學(xué)習(xí)操作系統(tǒng)呢? 今天就這個(gè)問(wèn)題開(kāi)始,來(lái)談?wù)劜?..
    tangsl閱讀 4,331評(píng)論 0 23
  • Object C中創(chuàng)建線程的方法是什么?如果在主線程中執(zhí)行代碼,方法是什么?如果想延時(shí)執(zhí)行代碼、方法又是什么? 1...
    AlanGe閱讀 1,926評(píng)論 0 17
  • 多線程:防止主線程堵塞,增加運(yùn)行效率。The term thread is used to refer to a ...
    我是誰(shuí)重要嗎閱讀 1,182評(píng)論 1 4
  • 一.概述 1.基本概念 同步與異步的概念 同步 必須等待當(dāng)前語(yǔ)句執(zhí)行完畢,才可以執(zhí)行下一個(gè)語(yǔ)句。 異步 不用等待當(dāng)...
    Jt_Self閱讀 546評(píng)論 0 1

友情鏈接更多精彩內(nèi)容