瀏覽量:101次
進(jìn)程與線程的區(qū)別?進(jìn)程與線程的區(qū)別
方法
進(jìn)程:指在系統(tǒng)中能獨(dú)立運(yùn)行并作為資源分配的基本單位,它是由一組機(jī)器指令、數(shù)據(jù)和堆棧等組成的,是一個(gè)能獨(dú)立運(yùn)行的活動(dòng)實(shí)體。
進(jìn)程一般有三個(gè)狀態(tài):就緒狀態(tài)、執(zhí)行狀態(tài)和等待狀態(tài)【或稱阻塞狀態(tài)】;進(jìn)程只能由父進(jìn)程建立,系統(tǒng)中所有的進(jìn)程形成一種進(jìn)程樹的層次體系;掛起命令可由進(jìn)程自己和其他進(jìn)程發(fā)出,但是解除掛起命令只能由其他進(jìn)程發(fā)出。
由程序段、相關(guān)的數(shù)據(jù)段和PCB三部分構(gòu)成了進(jìn)程實(shí)體(又稱進(jìn)程印像),一般,我們把進(jìn)程實(shí)體就簡(jiǎn)稱為進(jìn)程。
進(jìn)程的特征:
1.動(dòng)態(tài)性:進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過程,進(jìn)程是動(dòng)態(tài)產(chǎn)生,動(dòng)態(tài)消亡的。
2.并發(fā)性:任何進(jìn)程都可以同其他進(jìn)程一起并發(fā)執(zhí)行。
3.獨(dú)立性:進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)分配資源和調(diào)度的獨(dú)立單位。
4.異步性:由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行的間斷性,即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)。
線程:線程是進(jìn)程中的一個(gè)實(shí)體,作為系統(tǒng)調(diào)度和分派的基本單位。Linux下的線程看作輕量級(jí)進(jìn)程。
線程的性質(zhì):
1.線程是進(jìn)程內(nèi)的一個(gè)相對(duì)獨(dú)立的可執(zhí)行的單元。若把進(jìn)程稱為任務(wù)的話,那么線程則是應(yīng)用中的一個(gè)子任務(wù)的執(zhí)行。
2.由于線程是被調(diào)度的基本單元,而進(jìn)程不是調(diào)度單元。所以,每個(gè)進(jìn)程在創(chuàng)建時(shí),至少需要同時(shí)為該進(jìn)程創(chuàng)建一個(gè)線程。即進(jìn)程中至少要有一個(gè)或一個(gè)以上的線程,否則該進(jìn)程無法被調(diào)度執(zhí)行。
3.進(jìn)程是被分給并擁有資源的基本單元。同一進(jìn)程內(nèi)的多個(gè)線程共享該進(jìn)程的資源,但線程并不擁有資源,只是使用他們。
4.線程是操作系統(tǒng)中基本調(diào)度單元,因此線程中應(yīng)包含有調(diào)度所需要的必要信息,且在生命周期中有狀態(tài)的變化。
5.由于共享資源【包括數(shù)據(jù)和文件】,所以線程間需要通信和同步機(jī)制,且需要時(shí)線程可以創(chuàng)建其他線程,但線程間不存在父子關(guān)系。
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776