1、什麼是線程? 2、線程和進程有什麼區別? 3、如何在Java中實現線程? 4、Java關鍵字volatile與synchronized作用與區別? volatile修飾的變數不保留拷貝,直接訪問主記憶體 synchronized用來修飾一個方法或者一個代碼塊的時候,能夠保證在同一時刻最多只有一個線 ...
1、什麼是線程?
2、線程和進程有什麼區別?
3、如何在Java中實現線程?
4、Java關鍵字volatile與synchronized作用與區別?
volatile修飾的變數不保留拷貝,直接訪問主記憶體
synchronized用來修飾一個方法或者一個代碼塊的時候,能夠保證在同一時刻最多只有一個線程執行該段代碼
5、有哪些不同的線程生命周期?
6、你對線程優先順序的理解是什麼?
7、什麼是死鎖(Deadlock)?如何分析和避免死鎖?
8、什麼是線程安全?Vector是一個線程安全類嗎?
9、Java中如何停止一個線程?
10、什麼是ThreadLocal?
11、Sleep()、suspend()和wait()之間有什麼區別?
註意:sleep()是一個靜態方法。這意味著只對當前線程有效,一個常見的錯誤是調用t.sleep(),(這裡的t是一個不同於當前線程的線程)。即便是執行t.sleep(),也是當前線程進入睡眠,而不是t線程。t.suspend()是過時的方法,使用suspend()導致線程進入停滯狀態,該線程會一直持有對象的監視器,suspend()容易引起死鎖問題。
12、什麼是線程餓死,什麼是活鎖?