[面試題總結及擴展知識]同一進程中的線程共享的資源

又是一道騰訊2014年的面試題:面試

A,棧   B,數據段    C,寄存器組    D,文件描述符併發

這是解釋以及相對應的擴展知識:函數

線程的共性以下:線程

線程共享的環境包括:進程代碼段、3d

          進程的公有數據(利用這些共享的數據,線程很容易的實現相互之間的通信)、blog

          進程打開的文件描述符、進程

          信號的處理器、變量

           進程的當前目錄和進程用戶ID與進程組ID。擴展

線程的個性以下:騰訊

  1.線程ID
     每一個線程都有本身的線程ID,這個ID在本進程中是惟一的。進程用此來標識線程。
  2.寄存器組的值
     因爲線程間是併發運行的,每一個線程有本身不一樣的運行線索,當從一個線程切換到另外一個線程上時,必須將原有的線程的寄存器集合的狀態保存,以便未來該線程在被從新切          換到時能得以恢復。
  3.線程的堆棧
     堆棧是保證線程獨立運行所必須的。線程函數能夠調用函數,而被調用函數中又是能夠層層嵌套的,因此線程必須擁有本身的函數堆棧,使得函數調用能夠正常執行,不受其          他線程的影響。
  4.錯誤返回碼
     因爲同一個進程中有不少個線程在同時運行,可能某個線程進行系統調用後設置了error值,而在該線程尚未處理這個錯誤,另一個線程就在此時被調度器投入運行,這樣        錯誤值就有可能被修改。 因此,不一樣的線程應該擁有本身的錯誤返回碼變量。
  5.線程的信號屏蔽碼
     因爲每一個線程所感興趣的信號不一樣,因此線程的信號屏蔽碼應該由線程本身管理。但全部的線程都共享一樣的信號處理器。
  6.線程的優先級
     因爲線程須要像進程那樣可以被調度,那麼就必需要有可供調度使用的參數,這個參數就是線程的優先級。

總之要明白,在一個進程的線程共享堆區,而進程中的線程各自維持本身堆棧。

因此這道題的正確答案是 BD

相關文章
相關標籤/搜索