所謂進(jìn)程其實就是資源分配的基本單位,線程是cpu調(diào)度和分派的基本單位,線程屬于進(jìn)程的一部分,一個進(jìn)程可以有多個線程,線程可看做輕量級的進(jìn)程,兩者有什么聯(lián)系,且聽聚名企服的相關(guān)介紹~
一、關(guān)于線程、進(jìn)程有什么關(guān)系的詳情介紹
1、進(jìn)程最少有一個線程,一個線程只能在一個進(jìn)程的地址空間內(nèi)活動;
2、資源分配進(jìn)程,同一個進(jìn)程的所有線程共享該進(jìn)程所有資源;
3、CPU分配給線程,即真正在處理器運行的是線程;
4、線程在執(zhí)行過程中需要協(xié)作同步,不同進(jìn)程的線程間要利用消息通信的辦法實現(xiàn)同步;
二、進(jìn)程之間可以共享嗎
進(jìn)程擁有這許多共性的同時,還擁有自己的個性。有了這些個性,線程才能實現(xiàn)并發(fā)性。這些個性包括:
1、線程ID,每個線程都有自己的線程ID,這個ID在本進(jìn)程中是唯一的。進(jìn)程用此來標(biāo)識線程。
2、寄存器組的值,由于線程間是并發(fā)運行的,每個線程有自己不同的運行線索,當(dāng)從一個線程切換到另一個線程上時,必須將原有的線程的寄存器集合的狀態(tài)保存,以便將來該線程在被重新切換到時能得以恢復(fù)。
3、線程的堆棧,堆棧是保證線程獨立運行所必須的。
線程函數(shù)可以調(diào)用函數(shù),而被調(diào)用函數(shù)中又是可以層層嵌套的,所以線程必須擁有自己的函數(shù)堆棧,使得函數(shù)調(diào)用可以正常執(zhí)行,不受其他線程的影響。
4、線程的信號屏蔽碼,由于每個線程所感興趣的信號不同,所以線程的信號屏蔽碼應(yīng)該由線程自己管理。但所有的線程都共享同樣的信號處理器。
5、線程的優(yōu)先級,由于線程需要像進(jìn)程那樣能夠被調(diào)度,那么就必須要有可供調(diào)度使用的參數(shù),這個參數(shù)就是線程的優(yōu)先級。
以上就是什么是線程,什么是進(jìn)程,兩者有什么關(guān)系?的相關(guān)內(nèi)容。