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