搜尋
首頁常見問題同一個行程中的執行緒不共享的部分是什麼

同一個行程中的執行緒不共享的部分是什麼

同一個行程中的執行緒不共享的部分是執行緒的堆疊。

線程共享的環境包括:進程代碼段、進程的公有數據(利用這些共享的數據,線程很容易的實現相互之間的通訊)、進程打開的文件描述符、信號的處理器、進程的目前目錄和進程用戶ID與進程組ID。  

進程擁有這許多共通點的同時,也擁有自己的個性。有了這些個性,線程才能實現並發性。這些個性包括:

1、執行緒ID

每個執行緒都有自己的執行緒ID,這個ID在本行程中是唯一的。進程用此來標識執行緒。

2、暫存器群組的值

由於執行緒間是並發運行的,每個執行緒有自己不同的運行線索,當從一個執行緒切換到另一個執行緒上  時,必須將原有的線程的暫存器集合的狀態保存,以便將來該線程在被重新切換到時能得以恢復。

3、執行緒的堆疊

堆疊是保證執行緒獨立運行所必須的。執行緒函數可以呼叫函數,而被呼叫函數中又是可以層層巢狀的,所以執行緒必須擁有自己的函數堆疊,使得函數呼叫可以正常執行,不受其他執行緒的影響。

4、錯誤回傳碼

由於同一個行程中有很多個執行緒同時運行,可能某個執行緒進行系統呼叫後設定了errno值,而在該  執行緒還沒有處理這個錯誤,另外一個執行緒就在此時被調度器投入運行,這樣錯誤值就有可能被修改。所以,不同的線程應該擁有自己的錯誤回傳碼變數。

5、執行緒的訊號屏蔽碼

由於每個執行緒所感興趣的訊號不同,所以執行緒的訊號屏蔽碼應該由執行緒自己管理。但所有的執行緒都共享同樣的訊號處理器。

6、執行緒的優先權

由於執行緒需要像行程一樣能夠被調度,那麼就必須要有可供調度使用的參數,這個參數就是執行緒的優先權。

以上是同一個行程中的執行緒不共享的部分是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器