1. 程式人生 > >多執行緒概念及常用知識點

多執行緒概念及常用知識點

問題1:什麼是程序?程序的特點?

解答:程序是程式的一次動態執行過程,它對應了從程式碼載入、執行至執行完畢的一個完整過程,這個過程也是程序本身從產生、發展至消亡的過程。

                   特點是:程序是系統執行的基本單位;

                                     每一個程序都有自己獨立的一塊記憶體空間、一組系統資源;

                                     每一個程序的內部資料和狀態都是完全獨立的。

問題2:執行緒概念?多執行緒?

解答:執行緒是程序中執行運算的最小單位,可完成一個獨立的順序控制流程。每一個程序中,必須至少建立一個執行緒(即主執行緒)來作為這個程式執行的入口。

                   多執行緒:一個程序中同時運行了多個執行緒,用來完成不同的工作,稱之為多執行緒。

問題3:多執行緒的好處?

解答:1、充分利用CPU的資源;

                   2、簡化程式設計模型;

                   3、良好的使用者體驗。

問題4:Java中支援多執行緒程式設計的類?

解答:Java提供了java.lang.Thread類支援多執行緒程式設計

問題5:主執行緒的重要體現?

解答:1、它是產生其他子執行緒的執行緒;

                   2、它必須最後完成執行,因為它執行各種關閉動作。

問題6:如何使用一個執行緒?如何建立一個執行緒?

解答:使用:1、定義一個執行緒,同時指明這個執行緒所需要執行的程式碼,即期望完成的功能。

                   2、建立執行緒物件;

                   3、啟動執行緒;

                   4、終止執行緒。

             建立執行緒:1、通過繼承Thread類建立執行緒;

                            2、實現Runnable介面建立執行緒(推薦)

問題7:執行緒的狀態?

解答:執行緒一般具有五種狀態:即建立、就緒、執行、阻塞、死亡。

問題8:可能使執行緒暫停執行的條件?

解答:1、執行緒優先順序比較低,無法獲取CPU資源;

                   2、使用sleep()方法使執行緒休眠;

                   3、通過呼叫wait()方法,使執行緒等待;

                   4、通過呼叫yield()方法,使執行緒讓出CPU控制權;

                   5、執行緒由於等待一個檔案,I/O事件被阻塞。

問題9:什麼是執行緒同步?如何實現?關鍵字是什麼?

解答: 當兩個或多個執行緒需要訪問同一資源時,需要以某種順序來確保該資源某一時刻只能被一個執行緒使用,這就稱為執行緒同步。

                   執行緒同步有兩種方式:

一是同步方法;

         訪問修飾符 synchronized 返回型別 方法名(引數列表){  //方法體……  }

         synchronized訪問修飾符 返回型別 方法名(引數列表){  //方法體……  }

二是同步程式碼塊。

Synchronized(syncObject){ //需要同步的程式碼 }

                   實現同步的關鍵字是:synchronized ['sɪŋkrənaɪzd]

問題10:執行緒同步注意事項?

解答:1、當多個併發執行緒訪問同一個物件object的synchronized(this)同步程式碼塊時,同一時刻只能有一個執行緒得到執行,其他執行緒必須等待當前執行緒執行完畢之後才能執行改程式碼塊。

2、當一個執行緒訪問object的一個synchronized(this)同步程式碼塊時,其他執行緒對object中所有其他synchronized(this)同步程式碼塊的訪問將被阻塞。即該執行緒獲得這個object物件鎖,其他執行緒對該object物件所有同步程式碼部分的訪問都被阻塞。

3、當一個執行緒訪問object的synchronized(this)同步程式碼塊時,其他執行緒仍可以訪問該object的非synchronized(this)同步程式碼塊。

問題11:常見執行緒安全型別?

解答:HashTable與HashMap;StringBuffer與StringBuilder。