1.synchronized 鎖重入:執行緒請求由自己持有的物件時,如果該鎖是重入鎖,請求就會成功,否則阻塞
2.synchronized出現異常時,鎖自動釋放
3.當多個執行緒要同乙個例項時
雙重校驗鎖
public
class dubblesingleton catch (interruptedexception e)
//類上加鎖,表示當前物件不可以在其他執行緒的時候建立
synchronized (dubblesingleton.class) }}
return instance;
}}
上面用到了volatile ,下面說下volatile的作用
volatile關鍵字的作用就是強制從公共堆疊中取得變數的值,而不是從執行緒私有棧中取
volatile 解決的是變數在多個執行緒之間的可見性,而 synchronized 解決的是多個執行緒之間訪問資源的同步性
Java多執行緒2 執行緒的建立
上一講中我們講了什麼是執行緒,這一講我們細細討論一下關於執行緒的那些事。先看看執行緒的狀態轉換圖。1.首先執行緒被建立出來。2.進入就緒佇列中等待cpu分配時間片 這裡的時間片指的是cpu允許執行緒執行的最大時間 若在規定時間內未執行完成,則執行緒繼續進入就緒佇列等待cpu分配時間片。3.執行緒進入...
Java多執行緒2 synchronized
先看一段 public class account public void deposit int my catch interruptedexception e this.money tmp public void withdraw int my catch interruptedexceptio...
Java 回顧筆記 多執行緒 2
執行緒的狀態 執行緒建立的第二種方式 將任務封裝成物件 方法二的好處 區別 繼承 thread和實現 runtimethread 小區別 如果當你想實現4個執行緒同時對乙個元素進行操作,就用run 如果你想4個執行緒 四個元素就用thread 因為當你使用繼承thread的 時候,你就建立了4個物件...