java線程知識點

本文章內容來自《Head First Java》第15章 網絡聯機 第517頁 要點

1、Thread.sleep()這個靜態方法可以強制線程進入等待狀態到過了設定時間爲止,例如Thread.sleep(200)會睡上200個毫秒。

2、可以調用sleep()讓所有的線程都有機會運行。(有的時候線程之間的資源需要互相調用,睡一會兒可以保證所需線程已經運行出來。)

3、sleep()方法可能會拋出InterruptedException異常,所以要包在try/catch快,或者把它也聲明出來。

4、你可以用setName()方法來幫線程命名,通常是用來除錯的。

5、如果兩個或以上的線程存取對上相同的對象可能會出現嚴重的問題。

6、如果兩個或兩個以上的新城存取相同的對象可能會引發數據的損毀。

7、要讓對象在線程上有足夠的安全性,就要判斷出那些指令不能被分割執行。

8、使用synchronized這個關鍵詞修飾符可以防止兩個線程同時進入同一對象的統一方法。

9、每個對象都有單一的鎖,單一的鑰匙。這隻會在對象帶有同步化方法時纔有實際的用途。

10、線程嘗試要進入同步化過的方法時必須要取得對象的鑰匙,如果因爲已經被別的線程拿走了,那就得等。

11、對象就算是有多個同步化過的方法,也還是隻有一個鎖。一旦某個線程進入該對象的同步化方法,其他線程就無法進入該對象上的任何同步化線程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章