在支援多執行緒的作業系統中,假設程序p建立了若干個執行緒,那麼(47)是不能被其他執行緒共享的。
(47)a.該程序的**段 b.該程序中開啟的檔案
c.該程序的全域性變數 d.該程序中執行緒的棧指標
【答案】d
【解析】
同一程序間的執行緒共享的資源包括:
1、堆:由於堆是在程序空間中開闢出來的,所以它是理所當然地被共享的。
2、全域性變數:它是與具體某一函式無關的,所以也與特定執行緒無關;因此也是共享的
3、靜態變數:雖然對於區域性變數來說,它在**中是“放”在某一函式中的,但是其存放位置和全域性變數一樣,存於堆中開闢的.bss和.data段,是共享的。
4、檔案等公用資源:使用這些公共資源的執行緒必須同步。win32 提供了幾種同步資源的方式,包括訊號、臨界區、事件和互斥體。
獨享的資源有:
1、棧:每個執行緒中的棧都是由執行緒自身獨享的。
2、暫存器:每個執行緒執行指令時,都要用到暫存器,執行緒間的暫存器並不共享。