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