鎖消除:
指虛擬機即時編譯器在運行時,對一些代碼上要求同步,但被檢測到不可能存在共享數(shù)據(jù)競爭的鎖進行消除。主要根據(jù)逃逸分析。
程序員怎么會在明知道不存在數(shù)據(jù)競爭的情況下使用同步呢?很多不是程序員自己加入的。
鎖粗化:
原則上,同步塊的作用范圍要盡量小。但是如果一系列的連續(xù)操作都對同一個對象反復(fù)加鎖和解鎖,甚至加鎖操作在循環(huán)體內(nèi),頻繁地進行互斥同步操作也會導(dǎo)致不必要的性能損耗。
鎖粗化就是增大鎖的作用域。