java多線程面試題匯總
阿新 • • 發佈:2017-09-01
運算 上下文環境 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多線程面試題匯總