線程與進(jìn)程的區(qū)別

在傳統(tǒng)的操作系統(tǒng)中,進(jìn)程擁有獨(dú)立的內(nèi)訓(xùn)地址空間和一個(gè)用于執(zhí)行任務(wù)的線程,但是,現(xiàn)在的情況更多的情況下要求在同一地址空間下?lián)碛卸鄠€(gè)任務(wù)并發(fā)執(zhí)行,因此多線程被引入操作系統(tǒng)。

對(duì)于多線程我的理解是:線程就相當(dāng)于是“迷你型的小進(jìn)程”,為什么這么說呢,是因?yàn)榫€程與進(jìn)程有很多的相似之處,比如兩者都有 運(yùn)行狀態(tài)、就緒狀態(tài)、阻塞狀態(tài);(缺少資源時(shí),進(jìn)程處于阻塞狀態(tài),有資源但是CPU 沒有到位時(shí),進(jìn)程處于就緒狀態(tài),都有時(shí),處于運(yùn)行狀態(tài));

一個(gè)程序至少有一個(gè)進(jìn)程,每一個(gè)進(jìn)程至少有一個(gè)線程。

進(jìn)程:資源分配的最小獨(dú)立單位。就是一個(gè)應(yīng)用程序在處理機(jī)制上的一次執(zhí)行過程,它可以申請(qǐng)和擁有系統(tǒng)資源;進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。

線程:進(jìn)程下的一個(gè)分支。是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,是比進(jìn)程更小的獨(dú)立運(yùn)行的基本單位。除了在運(yùn)行中必不可少的資源外,線程本身基本不擁有系統(tǒng)資源,但是它可以與同一個(gè)進(jìn)程的其他的線程共享進(jìn)程中的全部資源。

多線程的目的:防止主線程阻塞,增加運(yùn)行效率等的最佳方法,蘋果公司提供了Operation這個(gè)類,這是一個(gè)優(yōu)秀的多線程編程方法,一個(gè)NSperationQueue操作隊(duì)列,就相當(dāng)于一個(gè)線程管理器,用來管理多線程,多線程是一個(gè)比較輕量級(jí)的方法來實(shí)現(xiàn)單個(gè)應(yīng)用程序內(nèi)多個(gè)代碼執(zhí)行路徑,iOS下的主線程堆棧大小是1M,第二個(gè)線程開始就是512KB,并且該值不能通過編譯器開關(guān)或線程API函數(shù)來修改,只有主線程有刷新UI的能力。

另外,定時(shí)器與線程的區(qū)別:定時(shí)器事件可以多次執(zhí)行,默認(rèn)是在主線程中,線程事件只能執(zhí)行一次。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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