线程锁

 可重入锁

synchronized是可重入的即在同一个对象中,防止其他对象读取同一对象的其他sync方法 即只有当前对象才能再次获取锁 其他不行
使用重入锁ReentrantLock后就没有这种情况,每次访问或必须在方法里解锁,才不会阻塞其他要访问该锁的线程

锁的升级

偏向锁:一个线程,无竞争,每次比较锁标志,不是自己的锁即通过无锁机制竞争,成功则把对象头设为线程ID
失败则成为轻量级锁,轻量级锁允许线程等待(不是阻塞,而是不断获取锁)
时间不能太长,太长则变为重量级锁

Xms和Xmx一般设置成1:1比例,原因是避免在GC后调整堆大小带来的压力
-Xms等价于-XX:InitialHeapSize,-Xmx等价于-XX:MaxHeapSize。所以他们都是XX类型参数

posted @ 2019-07-28 01:03  Tomato-L  阅读(172)  评论(1编辑  收藏  举报