Java學習之執行緒鎖 synchronized

2021-06-29 00:04:55 字數 1385 閱讀 5346

同步:併發  多個執行緒訪問同乙份資源 確保資源安全  --》執行緒安全

synchronized: 同步 

1、同步塊

synchronized(引用型別|this|類.class)

2、同步方法

public synchronized void test()

public class testsyn 

}class ticket implements runnable

} catch (interruptedexception e)

} // 執行緒安全,同步塊,慢

public void test3() throws interruptedexception

thread.sleep(1000);

system.out

.println(thread.currentthread().getname() + "==>" + num--);

} }// 執行緒安全,鎖定方法,慢

public synchronized void test2() throws interruptedexception

thread.sleep(1000);

system.out.println(thread.currentthread().getname() + "==>" + num--);

} // 執行緒不安全,鎖定範圍不正確

public void test4() throws interruptedexception

} thread.sleep(1000);

system.out.println(thread.currentthread().getname() + "==>" + num--);

} // 執行緒不安全,鎖定範圍不正確

public void test5() throws interruptedexception

synchronized (this)

} // 執行緒不安全,鎖定範圍不正確

public void test6() throws interruptedexception

thread.sleep(1000);

system.out

.println(thread.currentthread().getname() + "==>" + num--);

} }// 執行緒不安全,沒有鎖定資源

public void test1() throws interruptedexception

thread.sleep(1000);

system.out.println(thread.currentthread().getname() + "==>" + num--);

}}

Java執行緒鎖

學習多執行緒大家都對它的鎖感到鬱悶,一般它的鎖物件可以有object,當前類物件this,以及修飾static方法時的類class檔案。比如對於同步 塊 while true catch interruptedexception e system.out.println thread.current...

執行緒學習之互斥鎖

關於死鎖 條件訊號 conditional 1.相關api 具體例子 程式設計遇到的問題 當乙個程序中存在兩個及以上 乙個程序本來就有乙個執行緒 的執行緒時,執行緒間會互相爭奪共享資源,導致單個執行緒中的執行秩序會被打亂。所以需要用到互斥量來進行秩序控制,保證單個執行緒中的程式先執行完畢。所以互斥鎖...

JUC學習之執行緒8鎖

介紹執行緒8鎖圍繞乙個題目展開,題目 列印的是 one 還是 two 1.兩個普通同步方法,兩個執行緒,列印?public class testthread8monitor start new thread new runnable start class number public synchro...