控制同步的方法
(已過時)加鎖 synchronized 互斥鎖 缺點: 併發效率低下
synchronized
synchronized(obj) 對obj加鎖的同步**塊
只有拿到obj鎖標記的執行緒, 才能進入對obj加鎖的同步**塊
public synchronized void m(){} 對this加鎖的同步**塊
只有拿到obj鎖標記的執行緒,才能呼叫obj的同步方法
鎖分級 readwritelock 寫鎖分配時,讀鎖不能分配;寫鎖未分配時,讀鎖可以多次分配
class vector
public void remove()
//讀方法 獲取集合中的資料
public void size()
public void get()
}
鎖分段 concurrenthashmap 在jdk5-7,不對整個map加鎖,而是把map分成16個片段,對每個片段單獨加鎖
無鎖演算法 用cas 比較交換演算法實現 concurrenthashmap 在jdk8,採用無鎖演算法
簡單理解一下cas演算法,例如:把a =old值,替換為a= new值
while(true)
}
posted @
2018-10-07 23:39
chenps 閱讀(
...)
編輯收藏
控制線程同步的方法
控制同步的方法 已過時 加鎖 synchronized 互斥鎖 缺點 併發效率低下 synchronized synchronized obj 對obj加鎖的同步 塊 只有拿到obj鎖標記的執行緒,才能進入對obj加鎖的同步 塊 public synchronized void m 對this加鎖的...
控制線程同步的方法
控制同步的方法 已過時 加鎖 synchronized 互斥鎖 缺點 併發效率低下 synchronized synchronized obj 對obj加鎖的同步 塊 只有拿到obj鎖標記的執行緒,才能進入對obj加鎖的同步 塊 public synchronized void m 對this加鎖的...
控制線程的方法
控制線程的方法有join sleep 休眠 yield 讓步 suspend 掛起 resume 恢復 簡單的測試下sleep 和yield 並說明執行緒在這兩種狀態下對cpu的持有狀態和對同步鎖的持有狀態 在這裡不貼出程式執行的結果,大家可以根據 在自己的機器上跑一 會一下我接下來要闡述的,這要看...