線程的基本概念

第一題:線程的基本概念、線程的基本狀態及狀態之間的關係?

線程,有時稱爲輕量級進程,是CPU使用的基本單元;它由線程ID、程序計數器、寄存器集合和堆棧組成。它與屬於同一進程的其他線程共享其代碼段、數據段和其他操作系統資源(如打開文件和信號)。

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




第二題:線程與進程的區別?

1、 線程是進程的一部分,所以線程有的時候被稱爲是輕權進程或者輕量級進程。
2、 一個沒有線程的進程是可以被看作單線程的,如果一個進程內擁有多個進程,進程的執行過程不是一條線(線程)的,而是多條線(線程)共同完成的。
3、 系統在運行的時候會爲每個進程分配不同的內存區域,但是不會爲線程分配內存(線程所使用的資源是它所屬的進程的資源),線程組只能共享資源。那就是說,出了CPU之外(線程在運行的時候要佔用CPU資源),計算機內部的軟硬件資源的分配與線程無關,線程只能共享它所屬進程的資源。
4、 與進程的控制表PCB相似,線程也有自己的控制表TCB,但是TCB中所保存的線程狀態比PCB表中少多了。
5、 進程是系統所有資源分配時候的一個基本單位,擁有一個完整的虛擬空間地址,並不依賴線程而獨立存在。

 

第三題:多線程有幾種實現方法,都是什麼?

 1. 繼承 Thread 類
  2. 實現 Runnable 接口再 new Thread(YourRunnableOjbect) 

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



線程間的同步方法大體可分爲兩類:用戶模式和內核模式。顧名思義,內核模式就是指利用系統內核對象的單一性來進行同步,使用時需要切換內核態與用戶態,而用戶模式就是不需要切換到內核態,只在用戶態完成操作。
用戶模式下的方法有:原子操作(例如一個單一的全局變量),臨界區。內核模式下的方法有:事件,信號量,互斥量。

 

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

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

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

發佈了31 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章