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