国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

java中鎖的概念 java synchronized鎖對象,當(dāng)對象引用是null的時(shí)候,鎖的是什么?

java synchronized鎖對象,當(dāng)對象引用是null的時(shí)候,鎖的是什么?謝謝!Java語言規(guī)范明確指出,如果鎖定的對象為null,則會(huì)發(fā)生NullPointerException。規(guī)范的內(nèi)容

java synchronized鎖對象,當(dāng)對象引用是null的時(shí)候,鎖的是什么?

謝謝

!Java語言規(guī)范明確指出,如果鎖定的對象為null,則會(huì)發(fā)生NullPointerException。規(guī)范的內(nèi)容如下:

表達(dá)式的類型必須是引用類型,否則會(huì)發(fā)生完全時(shí)間錯(cuò)誤。首先計(jì)算表達(dá)式,執(zhí)行同步語句。然后:如果表達(dá)式的求值由于某種原因完全完成,那么synchronized語句也因?yàn)橥瑯拥脑蛲耆瓿伞7駝t,如果表達(dá)式的值為null,則拋出NullPointerException

!那么,如何避免鎖的性能下降呢?

1、從業(yè)務(wù)上避免大量鎖結(jié)構(gòu)

!2. 使用ThreadLocal,可以保證每個(gè)線程中的數(shù)據(jù)不會(huì)互相污染

!3. 如果讀多寫少,請使用讀寫鎖

!4. 自旋鎖將挑戰(zhàn)CPU,盡管它是一個(gè)線程時(shí)間很少的鎖

!5. 鎖的粒度應(yīng)該盡可能小:可以在方法中的鎖不應(yīng)該占用整個(gè)方法