IOS 進(jìn)程、線程與多線程的基本概念和個人理解

進(jìn)程:
????????官話:具有一定獨(dú)立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運(yùn)行活動,進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨(dú)立單位。
????????個人:執(zhí)行程序需要將其裝載到內(nèi)存中,分配一定的資源(內(nèi)存,I/O),以執(zhí)行此程序,基于此,可以說一個進(jìn)程是一次執(zhí)行過程中的程序,是動態(tài)的。操作系統(tǒng)進(jìn)行資源分配的時候只分配到進(jìn)程,這就是獨(dú)立單位的意思。

????????特點(diǎn):進(jìn)程之間是獨(dú)立的,每個進(jìn)程獨(dú)立運(yùn)行在系統(tǒng)分配的特定內(nèi)存空間中,有一切必須的資源去完成執(zhí)行過程.多進(jìn)程在IOS中可能存在于系統(tǒng)中。

線程:
????????官話:線程是程序執(zhí)行流的最小單元,線程是進(jìn)程中的一個實(shí)體,進(jìn)程的所有任務(wù)都在線程中執(zhí)行,線程是 CPU 分配資源和調(diào)度的最小單位.

????????個人:進(jìn)程分配到資源,需要線程去具體執(zhí)行操作,線程因?yàn)檫M(jìn)程存在而存在,因進(jìn)程結(jié)束而結(jié)束,一個進(jìn)程至少有一個主線程。進(jìn)程和線程是一對多的關(guān)系,一個進(jìn)程可以對應(yīng)不止一個線程,一個線程只能對應(yīng)一個進(jìn)程。

聯(lián)系:
????????1.線程是進(jìn)程具體執(zhí)行單元,所有進(jìn)程的任務(wù)都要通過線程來實(shí)現(xiàn)。
????????2.一個程序可以有多個進(jìn)程(多進(jìn)程),一個進(jìn)程可以有多個線程,而且至少必須有一個線程。
????????3.同一進(jìn)程內(nèi)的線程共享進(jìn)程資源,單個線程的崩潰不必然導(dǎo)致進(jìn)程的崩潰,除非其他線程訪問該崩潰線程的內(nèi)存。
區(qū)別:
????????1.進(jìn)程獨(dú)享地址空間,線程則與同一進(jìn)程下的其他線程共享地址空間。
????????2.進(jìn)程因?yàn)槠洫?dú)立性,在保護(hù)模式下,即使崩潰也不會對其他進(jìn)程產(chǎn)生影響。而線程的崩潰則可能會導(dǎo)致其他線程崩潰,IOS中主線程的崩潰導(dǎo)致整個進(jìn)程崩潰。
????????3.線程是處理器調(diào)度的基本單元,進(jìn)程不是。
????????4.線程切換的速度要比進(jìn)程快得多,因?yàn)槠滟Y源開銷小得多。
????????5.在IOS中,因?yàn)榫€程之間共享全局變量、靜態(tài)變量,因此線程之間的通訊要比進(jìn)程方便很多。
????????6.線程基于進(jìn)程存在而存在,因此進(jìn)程可以單獨(dú)執(zhí)行,線程則必須依賴于進(jìn)程而執(zhí)行。
多線程:
????????官話:一個進(jìn)程可以同時執(zhí)行多個線程,這些線程之間并發(fā)執(zhí)行,完成不同的任務(wù)。
????????個人:一個程序需要同時處理不同的任務(wù),而這些任務(wù)可以并發(fā)執(zhí)行,通過創(chuàng)建多個線程來同時執(zhí)行任務(wù),提高程序的執(zhí)行效率,避免等待。
????????優(yōu)點(diǎn):
??????????????1.提高程序執(zhí)行效率,減少無謂等待,
??????????????2.多線程可以提高資源的利用率(CPU,內(nèi)存等等)。
????????缺點(diǎn):
??????????????1.提高程序復(fù)雜度。
??????????????2.因?yàn)榫€程之間共享資源,因此一旦多個線程需要訪問同一個資源時,很可能會帶來數(shù)據(jù)錯亂和數(shù)據(jù)丟失等安全問題,容易得不償失,雖然互斥鎖可以在一定程度上解決這個問題,但是會提高CPU消耗。

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

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

  • 1. 線程和進(jìn)程 在了解多線程之前,我們現(xiàn)在熟悉兩個概念,線程和進(jìn)程. 一. 線程 線程:進(jìn)程的基本執(zhí)行單元,一個...
    周灬閱讀 405評論 0 0
  • 1.進(jìn)程&線程 1.1 定義 進(jìn)程 進(jìn)程是系統(tǒng)中正在運(yùn)行的一個程序(當(dāng)一個程序進(jìn)入內(nèi)存運(yùn)行時,即成為了一個進(jìn)程。比...
    沉江小魚閱讀 405評論 0 2
  • 進(jìn)程 1.基本概念進(jìn)程是指在系統(tǒng)中正在運(yùn)行的一個應(yīng)用程序 2.進(jìn)程的特點(diǎn)a. 每個進(jìn)程之間都是獨(dú)立的b.每個進(jìn)程都...
    Mario_ZJ閱讀 440評論 0 0
  • 計(jì)算機(jī)操作系統(tǒng)都有的基本概念,以下概念簡單方式來描述。 進(jìn)程:就是在系統(tǒng)中,正在運(yùn)行的一個應(yīng)用程序。線程:是 CP...
    s_在路上閱讀 404評論 0 0
  • 進(jìn)程線程線程狀態(tài)與生命周期iOS中多線程的實(shí)現(xiàn)方案 進(jìn)程 理解為一個正在運(yùn)行的應(yīng)用程序,是系統(tǒng)進(jìn)行資源分配和調(diào)度的...
    廈門_小灰灰閱讀 179評論 0 0

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