字節(jié)三面:Java多線程奪命連環(huán)60問,被面試官懟的懷疑人生~
前言
現(xiàn)在不管是大公司還是小公司,去面試都會問到多線程與并發(fā)編程的知識,大家面試的時候這方面的知識一定要提前做好儲備。

1.多線程有什么用?
防止阻塞
便于建模
2.線程和進程的區(qū)別是什么?
3.Java 實現(xiàn)線程有哪幾種方式?
繼承 Thread 類實現(xiàn)多線程
實現(xiàn) Runnable 接口方式實現(xiàn)多線程
使用 ExecutorService、Callable、Future 實現(xiàn)有返回結(jié)果的多線程
4.啟動線程方法 start()和 run()有什么區(qū)別?
只有調(diào)用了 start()方法,才會表現(xiàn)出多線程的特性,不同線程的 run()方法里面的代碼交替執(zhí)行。如果只是調(diào)用 run()方法,那么代碼還是同步執(zhí)行的,必須等待一個線程的 run()方法里面的代碼全部執(zhí)行完畢之后,另外一個線程才可以執(zhí)行其 run()方法里面的代碼。
5.怎么終止一個線程?如何優(yōu)雅地終止線程?
stop 終止,不推薦。
6.一個線程的生命周期有哪幾種狀態(tài)?它們之間如何流轉(zhuǎn)的?
7.線程中的 wait()和 sleep()方法有什么區(qū)別?
8.多線程同步有哪幾種方法?
9.什么是死鎖?如何避免死鎖?
10.多線程之間如何進行通信?
11、線程怎樣拿到返回結(jié)果?
12、violatile 關(guān)鍵字的作用?
13、新建 T1、T2、T3 三個線程,如何保證它們按順序執(zhí)行?
14、怎么控制同一時間只有 3 個線程運行?
15、為什么要使用線程池?
16、常用的幾種線程池并講講其中的工作原理。
17、線程池啟動線程 submit()和 execute()方法有什么不同?
18、CyclicBarrier 和 CountDownLatch 的區(qū)別?
19、什么是活鎖、饑餓、無鎖、死鎖?
20、什么是原子性、可見性、有序性?
21、什么是守護線程?有什么用?
22、一個線程運行時發(fā)生異常會怎樣?
23、線程 yield()方法有什么用?
24、什么是重入鎖?
25、Synchronized 有哪幾種用法?
26、Fork/Join 框架是干什么的?
27、線程數(shù)過多會造成什么異常?
28、說說線程安全的和不安全的集合。
29、什么是 CAS 算法?在多線程中有哪些應(yīng)用。
30、怎么檢測一個線程是否擁有鎖?
31、Jdk 中排查多線程問題用什么命令?
32、線程同步需要注意什么?
33、線程 wait()方法使用有什么前提?
34、Fork/Join 框架使用有哪些要注意的地方?
35、線程之間如何傳遞數(shù)據(jù)?
36、保證"可見性"有哪幾種方式?
37、說幾個常用的 Lock 接口實現(xiàn)鎖。
38、ThreadLocal 是什么?有什么應(yīng)用場景?
39、ReadWriteLock 有什么用?
40、FutureTask 是什么?
41、怎么喚醒一個阻塞的線程?
42、不可變對象對多線程有什么幫助?
43、多線程上下文切換是什么意思?
44、Java 中用到了什么線程調(diào)度算法?
45、Thread.sleep(0)的作用是什么?
46、Java 內(nèi)存模型是什么,哪些區(qū)域是線程共享的,哪些是不共享的?
47、什么是樂觀鎖和悲觀鎖?
48、Hashtable 的 size()方法為什么要做同步?
49、同步方法和同步塊,哪種更好?
50、什么是自旋鎖?
51、Runnable 和 Thread 用哪個好?
52、Java 中 notify 和 notifyAll 有什么區(qū)別?
53、為什么 wait/notify/notifyAll 這些方法不在 thread 類里面?
54、為什么 wait 和 notify 方法要在同步塊中調(diào)用?
55、為什么你應(yīng)該在循環(huán)中檢查等待條件?
56、Java 中堆和棧有什么不同?
57、你如何在 Java 中獲取線程堆棧?
58、如何創(chuàng)建線程安全的單例模式?
59、什么是阻塞式方法?
60、提交任務(wù)時線程池隊列已滿會時發(fā)會生什么?

JAVA多線程面試題(附答案解析)
獲取方式↓↓↓
添加VX備注【242】即可免費獲取
喜歡小編的文章可以點點關(guān)注!小編不定期的分享最新Java筆記和面試真題
【JAVA面試題專欄】
1、2022年Java后端面試手冊,助力金三銀四,吃透25個技術(shù)棧!
2、2022年金三銀四,Java后端開發(fā)最全面試攻略,程序員求職必看!
