JVM-锁和并发

锁的概念

对象头和锁

偏向锁

轻量级锁

重量级锁

偏向锁

当线程再次请求这个锁时,无需进行相关的同步操作

-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

轻量级锁

重量级锁

posted @ 2021-05-22 19:08  fight139  阅读(32)  评论(0编辑  收藏  举报