[Java] [Java并发] [Java并发时锁优化技巧及注意事项,常见错误]

Java锁优化技巧

1、减少锁的持有时间
持有时间越短,竞争越短,并发越多,越快
2、减小锁的粒度
类似1吧,切入点不同,作用对象、区域粒度越小,竞争时间越短,并发越快
3、锁分离
经典套路,读写锁分离,内存访问区域分离,避免扎堆
4、锁粗化
反向优化,合并过度细化的锁粒度
5、锁消除
编译期锁消除(如逃逸分析后锁优化),JVM运行期的锁优化,有偏向锁,轻量级锁,自旋锁
6、ThreadLocal
7、常见错误
7.1 自动拆箱对象不能作为同步对象
static Integer i; synchronized(i){i++} 是无效的
7.2 被多线程全局访问的工具类对象,应当使用ThreadLocal加持
static ThreadLocal tl=new ThreadLocal();
… …
if(tl.get()==null){tl.set(new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”));}Date t=tl.get().parse(“2015-03-29 19:29:”+i%60);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值