java 控制線程同步的4種方法

2021-09-12 10:04:39 字數 833 閱讀 2926

控制同步的方法

(已過時)加鎖 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的持有狀態和對同步鎖的持有狀態 在這裡不貼出程式執行的結果,大家可以根據 在自己的機器上跑一 會一下我接下來要闡述的,這要看...