多執行緒筆試面試概念問答

2022-04-04 01:27:58 字數 1239 閱讀 5572

題目**

第一題:執行緒的基本概念、執行緒的基本狀態及狀態之間的關係?

執行緒,有時稱為輕量級程序,是cpu使用的基本單元;它由執行緒id、程式計數器、暫存器集合和堆疊組成。它與屬於同一程序的其他執行緒共享其**段、資料段和其他作業系統資源(如開啟檔案和訊號)。

執行緒有四種狀態:新生狀態、可執行狀態、被阻塞狀態、死亡狀態。狀態之間的轉換如下圖所示:

第二題:執行緒與程序的區別?

1、 執行緒是程序的一部分,所以執行緒有的時候被稱為是輕權程序或者輕量級程序。

2、 乙個沒有執行緒的程序是可以被看作單執行緒的,如果乙個程序內擁有多個程序,程序的執行過程不是一條線(執行緒)的,而是多條線(執行緒)共同完成的。

3、 系統在執行的時候會為每個程序分配不同的記憶體區域,但是不會為執行緒分配記憶體(執行緒所使用的資源是它所屬的程序的資源),執行緒組只能共享資源。那就是說,出了cpu之外(執行緒在執行的時候要占用cpu資源),計算機內部的軟硬體資源的分配與執行緒無關,執行緒只能共享它所屬程序的資源。

4、 與程序的控制表pcb相似,執行緒也有自己的控制表tcb,但是tcb中所儲存的執行緒狀態比pcb表中少多了。

5、 程序是系統所有資源分配時候的乙個基本單位,擁有乙個完整的虛擬空間位址,並不依賴執行緒而獨立存在。

第三題:多執行緒有幾種實現方法,都是什麼?

1. 繼承 thread 類

2. 實現 runnable 介面再 new thread(yourrunnableojbect) 

第四題:多執行緒同步和互斥有幾種實現方法,都是什麼?

執行緒間的同步方法大體可分為兩類:使用者模式和核心模式。顧名思義,核心模式就是指利用系統核心物件的單一性來進行同步,使用時需要切換核心態與使用者態,而使用者模式就是不需要切換到核心態,只在使用者態完成操作。

使用者模式下的方法有:原子操作(例如乙個單一的全域性變數),臨界區。核心模式下的方法有:事件,訊號量,互斥量。

第五題:多執行緒同步和互斥有何異同,在什麼情況下分別使用他們?舉例說明。

執行緒同步是指執行緒之間所具有的一種制約關係,乙個執行緒的執行依賴另乙個執行緒的訊息,當它沒有得到另乙個執行緒的訊息時應等待,直到訊息到達時才被喚醒。

執行緒互斥是指對於共享的程序系統資源,在各單個執行緒訪問時的排它性。當有若干個執行緒都要使用某一共享資源時,任何時刻最多隻允許乙個執行緒去使用,其它要使用該資源的執行緒必須等待,直到占用資源者釋放該資源。執行緒互斥可以看成是一種特殊的執行緒同步(下文統稱為同步)。

多執行緒16 多執行緒筆試面試題彙總

下面就來看看這三類題目吧。第一題 執行緒的基本概念 執行緒的基本狀態及狀態之間的關係?第二題 執行緒與程序的區別?這個題目問到的概率相當大,計算機專業考研中也常常考到。要想全部答出比較難。第三題 多執行緒有幾種實現方法,都是什麼?第四題 多執行緒同步和互斥有幾種實現方法,都是什麼?我在參加2011年...

多執行緒筆試面試題彙總

系列前言 法 相信你也能對多執行緒揮灑自如,在筆試面試中順利的秒殺多執行緒試題。華麗的分割線 下面就來看看這三類題目吧。第一題 執行緒的基本概念 執行緒的基本狀態及狀態之間的關係?第二題 執行緒與程序的區別?這個題目問到的概率相當大,計算機專業考研中也常常考到。要想全部答出比較難。第三題 多執行緒有...

多執行緒筆試面試題彙總

系列前言 法 相信你也能對多執行緒揮灑自如,在筆試面試中順利的秒殺多執行緒試題。華麗的分割線 下面就來看看這三類題目吧。第一題 執行緒的基本概念 執行緒的基本狀態及狀態之間的關係?第二題 執行緒與程序的區別?這個題目問到的概率相當大,計算機專業考研中也常常考到。要想全部答出比較難。第三題 多執行緒有...