91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java進階(8) - 并發(多線程鎖類)

發布時間:2020-06-19 00:05:04 來源:網絡 閱讀:163 作者:lm8751 欄目:編程語言

一共有3類鎖 ,方法鎖、對象鎖、類鎖。(方法鎖也是對象鎖的一種)
一、對象鎖
對象鎖
public class object {
private Lock lock = new ReentrantLock();//JavaSE1.5.新增了一個java.util.concurrent包來支持同步
public void method(){
synchronized(this){
System.out.println("我是對象鎖");
}
}
}

public synchronized void method(){ //默認使用類實例this當做鎖
System.out.println("我是對象鎖也是方法鎖");
}
這種機制確保了同一時刻對于每一個類實例,其所有聲明為 synchronized 的成員函數中只有一個可執行,從而有效避免了類成員變量的訪問沖突

二、類鎖
一個class的靜態方法和靜態變量在內存中只會加載和初始化一份,一旦一個靜態的方法被申明為synchronized,此類的所有的實例化對象在調用該方法時,共用同一把鎖,稱之為類鎖。
形式一:
public class object {
public static synchronized void method(){
System.out.println("我是第一種類鎖");
}
}

形式二:
public class object {
public void method(){
synchronized (object.this) {
System.out.println("我是第二種類鎖");
}
}
}

三、類鎖
ReentrantLock
Lock.lock() 當前線程嘗試獲取一個鎖,如果這個鎖獲取不到,則當前線程會一直休眠直到獲取這個鎖.
Lock.lockInterruptibly() 讓當前線程獲取一個鎖,如果鎖可以用,則直接返回.否則當前線程會一直休眠直到一下兩種情況中的其中一個發生:
當前線程獲取到這個鎖
其他線程打斷當前線程, 打斷當前線程獲取鎖的操作是允許的.
Lock.tryLock() 嘗試獲得一個鎖,如果鎖是可用的,則直接返回ture,并獲取到這個鎖.否則,直接返回false
Lock.tryLock(long time, TimeUnit unit) 在某一段時間內嘗試獲取一個鎖,如果鎖可用,則直接返回true,否則等待超時返回fasle
Lock.unlock() 釋放鎖
Lock.newCondition()

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼玛县| 江口县| 凤山县| 松溪县| 象山县| 屏山县| 岳普湖县| 海伦市| 潢川县| 宁强县| 巍山| 土默特左旗| 将乐县| 宁安市| 双江| 湄潭县| 固镇县| 达拉特旗| 凌源市| 巴青县| 舞钢市| 盘锦市| 正安县| 新泰市| 潼南县| 根河市| 济源市| 东方市| 嫩江县| 齐河县| 涟源市| 安化县| 南溪县| 邵东县| 巧家县| 瓮安县| 若羌县| 岢岚县| 东乡族自治县| 黎城县| 阿鲁科尔沁旗|