1. 講一下你對進程的理解?

image.png
2. 講一下你對線程的理解?

image.png
3. 多線程原理(分別從單核、多核角度分析)?另外線程越多越好嗎?

image.png
4. 說一下你理解的多線程的優(yōu)缺點(優(yōu)缺點各說兩個)?

image.png
5. Java 中開啟線程有幾種方式?(至少說 2 種)

image.png

image.png
6. Java 的 5 大內(nèi)存區(qū)中,如果開啟一條 新線程,哪些內(nèi)存區(qū)是需要獨自占用的?哪些內(nèi)存區(qū)是可以共用的?
- 獨立開啟的:PC 寄存器、Java 虛擬機棧、本地方法棧
- 共享:方法區(qū)、堆

image.png
- 從上圖我們可以更加清楚的知道,開啟線程的代價是哪些
7. Java 線程的 join 和 isAlive 方法,分別是什么含義?

image.png
8. 調(diào)用線程的 sleep 和 interrupt 方法有什么效果?

image.png
9. 什么情況下會出現(xiàn)線程安全問題(必須同時滿足哪兩個條件)?

image.png
10. synchronized(obj) 的原理?

image.png
11. 線程同步方法中,什么是同步語句方法?

image.png
12. 動態(tài)數(shù)組、動態(tài)字符串、字典 這三種數(shù)組類型,Java 為它們設(shè)計了線程安全的類和非線程安全的類,分別是哪些?

image.png