色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java重量級鎖和輕量級鎖

張越彬1年前6瀏覽0評論

Java中有兩種鎖,一種是重量級鎖,一種是輕量級鎖。

重量級鎖是Java中最基礎(chǔ)、最常見的鎖。在獲取重量級鎖的時候,它會將線程掛起并降低其優(yōu)先級,因此重量級鎖在使用時,對性能的影響是比較大的。

public synchronized void heavyLockMethod() {
//這里需要獲取到重量級鎖才能運行,也就是當(dāng)前 objectMonitor
//鎖住的對象
//……
}

輕量級鎖是Java中對重量級鎖的優(yōu)化,使用場景是在對象鎖競爭不太激烈的情況下。當(dāng)一個線程想要獲取鎖時,它會以CAS(Compare And Swap)操作的方式來嘗試獲取鎖,而不是像重量級鎖那樣直接掛起線程。這樣可以避免線程競爭時的線程掛起和喚醒,從而提高了系統(tǒng)性能。

public void lightLockMethod() {
synchronized(this) {
//這里獲取到鎖時,會創(chuàng)建一個標(biāo)記(也就是鎖的對象),相對而言,輕量級鎖在獲取鎖時,相比于重量級鎖更快。
//……
}
}

總的來說,重量級鎖是Java中最基礎(chǔ)的鎖,但對性能會有一定的影響。輕量級鎖則是對重量級鎖的優(yōu)化,在鎖競爭不激烈的情況下可以提高系統(tǒng)性能。具體使用哪種鎖,需要根據(jù)具體的業(yè)務(wù)場景來選擇。