精選30道Java多執行緒面試題

茅坤寶駿氹發表於2018-05-04

轉載自 精選30道Java多執行緒面試題


1、執行緒和程式的區別


2、實現執行緒有哪幾種方式?


3、執行緒有哪幾種狀態?它們之間如何流轉的?


4、執行緒中的start()和run()方法有什麼區別?


5、怎麼終止一個執行緒?如何優雅地終止執行緒?


6、ThreadLocal在多執行緒中扮演什麼角色?


7、執行緒中的wait()和sleep()方法有什麼區別?


8、多執行緒同步有哪幾種方法?


9、什麼是死鎖?如何避免死鎖?


10、多執行緒之間如何進行通訊?


11、執行緒怎樣返回結果?如何獲取?


12、說說violatile關鍵字有什麼用,和Synchronized有什麼區別?


13、假如新建T1、T2、T3三個執行緒,如何保證它們按順序執行?


14、怎麼控制同一時間只有3個執行緒執行?


15、為什麼要使用執行緒池?


16、說一說常用的幾種執行緒池並講講其中的工作原理。


17、執行緒池啟動執行緒submit()和execute()有什麼不同?


18、說說多執行緒併發控制中的倒數計時器、迴圈柵欄是什麼,有什麼應用場景?


19、什麼是活鎖、飢餓、無鎖、死鎖?


20、什麼是原子性、可見性、有序性?


21、什麼是守護執行緒?有什麼用?


22、怎麼中斷一個執行緒?如何保證中斷業務不影響?


23、yield()方法有什麼用?


24、什麼是重入鎖,和Synchronized鎖有什麼區別?


25、Synchronized有哪幾種用法?


26、Fork/Join框架是幹什麼的?


27、如何給執行緒傳遞引數?


28、說說執行緒安全的和不安全的集合。


29、什麼是CAS演算法?在多執行緒中有哪些應用。


30、你遇到過哪些多執行緒的問題?都是如何解決的?



相關文章