1. 程式人生 > >java多線程面試題匯總

java多線程面試題匯總

運算 上下文環境 imp 實現 最小 適合 區別 操作 試題

資源來源:http://www.importnew.com/12773.html

1.線程是什麽?

  線程被包含在進程之中,是進程中的實際運行單位,是操作系統中可以進行運算調度的最小單位。

2.進程是什麽?

  進程是是一個執行中的程序,是cpu資源分配的最小單位(線程是cpu調度的最小單位),進程中的線程共享進程的上下文環境。

3.線程和進程的區別?

  每個進程使用不同的內存空間,而進程內的所有線程共享一片相同的內存空間。4.Thread類的run()和start()方法的區別?

  threadDemo.run()跟普通的調用方法是一樣的,程序會按順序執行,等run方法執行結束之後,才可以繼續往下執行下面的代碼。

  通過threadDemo.start()來啟動一個線程,真正的實現了多線程,不用等到run()方法題結束就可以繼續執行下面的代碼。通過調用Thread類的start()方法來啟動一個線程, 這時此線程是處於就緒狀態, 並沒有運行。 然後通過此Thread類調用方法run()來完成其運行操作的, 這裏方法run()稱為線程體,它包含了要執行的這個線程的內容, Run方法運行結束, 此線程終止。然後CPU再調度其它線程。

5.Runnable比Thread具有的優勢

  1.適合實現資源共享

  2.可以避免java中的單繼承問題

  3.增加程序的健壯性,代碼可以被多個程序共享,代碼和數據獨立。

6.Runnable和Callable的區別?

  Callable是jdk1.5之後出現的,Callable可以返回值和拋出異常,但是Runnable不可以。

java多線程面試題匯總