java 多線程面試
阿新 • • 發佈:2018-09-07
col his java ava wait 系統 不同 ble 缺點
一、多線程的創建
1、多線程的創建
(1)、繼承Thread類
(2)、實現Runnable接口
2、兩種啟動線程方法的區別
1、共同點 必須調用Thread 產生線程,然後調用start()方法 開啟這個線程
2、不同點 因為Java是單繼承這個特點 所以為了彌補這個缺點 我們可以實現Runnable接口 靈活
如果繼承Thread類 那麽多線程的話,就必須相應產生多個線程
如果實現Runnable接口,只需建立一個實現這個類的實例,然後用這個實例產生多個線程,就實現了資源的共享
3、start/run方法的區別
start方法說明進入就緒狀態,什麽時候執行是看操作系統調度的,而run方法 是按順序執行,沒有多線程的效果
二、線程間通信
1、synchronized關鍵字
1)、synchronized對象鎖
synchronized public void methodA(){ } public void methodB(){ synchronized(this){ } }
2)、synchronized來實現線程間的通信
就是通過共享變量來進行通信
3)、synchronized/volatile
4)、synchronized/lock
2、sleep/wait
3、wait/notify機制
java 多線程面試