1:多執行緒有幾種實現方案,分別是哪幾種?
兩種。
繼承thread類
實現runnable介面
擴充套件一種:實現callable介面。這個得和執行緒池結合。
2:同步有幾種方式,分別是什麼?
兩種。
同步**塊
同步方法
3:啟動乙個執行緒是run()還是start()?它們的區別?
start();
run():封裝了被執行緒執行的**,直接呼叫僅僅是普通方法的呼叫
start():啟動執行緒,並由jvm自動呼叫run()方法
4:sleep()和wait()方法的區別
sleep():必須指時間;不釋放鎖。
wait():可以不指定時間,也可以指定時間;釋放鎖。
5:為什麼wait(),notify(),notifyall()等方法都定義在object類中
因為這些方法的呼叫是依賴於鎖物件的,而同步**塊的鎖物件是任意鎖。
而object**任意的物件,所以,定義在這裡面。
6:執行緒的生命週期圖
新建 – 就緒 – 執行 – 死亡
新建 – 就緒 – 執行 – 阻塞 – 就緒 – 執行 – 死亡
建議:畫**釋。
多執行緒面試題
題目 主線程執行10次,子執行緒執行10次,此過程重複50次 package com.thread.test function 主線程執行10次,子執行緒執行10次,此過程重複50次 public class threadproblem start for int j 0 j 50 j class ...
面試題 多執行緒
現有程式同時啟動了4個執行緒去呼叫testdo.dosome key,value 方法,由於testdo.dosome key,value 方法內的 是先暫停1秒,然後再輸出以秒為單位的當前時間值,所以,會列印出4個相同的時間值,如下所示 4 4 1258199615 1 1 1258199615 ...
多執行緒面試題
執行緒池的優點?執行緒是稀缺資源,使用執行緒池可以減少建立和銷毀執行緒的次數,每個工作執行緒都可以重複使用。執行緒池為執行緒生命週期開銷問題和資源不足問題提供了解決方案。可以根據系統的承受能力,調整執行緒池中工作執行緒的數量,防止因為消耗過多記憶體導致伺服器崩潰。public threadpoole...