线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这
生活随笔
收集整理的這篇文章主要介紹了
线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
線程共享的環(huán)境:
? ? ? 進(jìn)程代碼段、進(jìn)程的公有數(shù)據(jù)(利用這些共享的數(shù)據(jù),線程很容易的實(shí)現(xiàn)相互之間的通訊)、進(jìn)程打開的文件描述符、信號(hào)的處理器、進(jìn)程的當(dāng)前目錄和進(jìn)程用戶ID與進(jìn)程組ID。
進(jìn)程擁有這許多共性的同時(shí),還擁有自己的個(gè)性。有了這些個(gè)性,線程才能實(shí)現(xiàn)并發(fā)性:
????1.線程ID
??????每個(gè)線程都有自己的線程ID,這個(gè)ID在本進(jìn)程中是唯一的。進(jìn)程用此來標(biāo) ???識(shí)線程。 ????2.寄存器組的值
???????由于線程間是并發(fā)運(yùn)行的,每個(gè)線程有自己不同的運(yùn)行線索,當(dāng)從一個(gè)線 ???程切換到另一個(gè)線程上時(shí),必須將原有的線程的寄存器集合的狀態(tài)保存,以便 ???將來該線程在被重新切換到時(shí)能得以恢復(fù)。 ????3.線程的堆棧
???????堆棧是保證線程獨(dú)立運(yùn)行所必須的。
???????線程函數(shù)可以調(diào)用函數(shù),而被調(diào)用函數(shù)中又是可以層層嵌套的,所以線程 ???必須擁有自己的函數(shù)堆棧,使得函數(shù)調(diào)用可以正常執(zhí)行,不受其他線程的影 ???響。
????4.錯(cuò)誤返回碼
???????由于同一個(gè)進(jìn)程中有很多個(gè)線程在同時(shí)運(yùn)行,可能某個(gè)線程進(jìn)行系統(tǒng)調(diào)用 ???后設(shè)置了errno值,而在該線程還沒有處理這個(gè)錯(cuò)誤,另外一個(gè)線程就在此時(shí) ???被調(diào)度器投入運(yùn)行,這樣錯(cuò)誤值就有可能被修改。
???????所以,不同的線程應(yīng)該擁有自己的錯(cuò)誤返回碼變量。
????5.線程的信號(hào)屏蔽碼
???????由于每個(gè)線程所感興趣的信號(hào)不同,所以線程的信號(hào)屏蔽碼應(yīng)該由線程自 ???己管理。但所有的線程都共享同樣的信號(hào)處理器。
????6.線程的優(yōu)先級(jí)
???????由于線程需要像進(jìn)程那樣能夠被調(diào)度,那么就必須要有可供調(diào)度使用的參
???數(shù),這個(gè)參數(shù)就是線程的優(yōu)先級(jí)。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios多线程开发的常用三种方式
- 下一篇: Syntax error, annota