锁的概念
对象头和锁
偏向锁
轻量级锁
重量级锁
偏向锁
当线程再次请求这个锁时,无需进行相关的同步操作
-XX:+UserBiasedLocking
Vector线程安全,使用synchronize实现,开启偏向锁可以提高程序运行速度
public class Biased {
public static List<Integer> numberList =new Vector<>();
public static void main(String[] args) throws InterruptedException {
long begin=System.currentTimeMillis();
int count=0;
int startnum=0;
while(count<10000000){
numberList.add(startnum);
startnum+=2;
count++;
}
long end=System.currentTimeMillis();
System.out.println(end-begin);
}
}
-XX:+UseBiasedLocking -XX:BiasedLockingStartupDelay=0 -client -Xmx512m -Xms512m
禁用偏向锁:
-XX:-UseBiasedLocking -client -Xmx512m -Xms512m