美文网首页
synchronized和ReentrantLock对比

synchronized和ReentrantLock对比

作者: 秦汉邮侠 | 来源:发表于2018-01-03 12:15 被阅读35次

概念

  • synchronized,翻译同步,俗称内置锁
  • ReentrantLock,Re-entrant-Lock,俗称重入锁,显示锁

synchronized的使用

  • 当synchronized作用于普通方法是,锁对象是this;
  • 当synchronized作用于静态方法是,锁对象是当前类的Class对象;
  • 当synchronized作用于代码块时,锁对象是synchronized(obj)中的这个obj。

相同点

  • 互斥性
  • 内存可见性
  • 可以重入(只是针对ReentrantLock)

不同点

  • ReentrantLock实现Lock接口,需要显示的加锁和解锁
  • ReentrantLock提供了非阻塞获取锁的方式,tryLock()
  • ReentrantLock提供了超时获取锁的方式,tryLock(long timeout, TimeUnit unit)
  • ReentrantLock能被中断的获取锁的方式,lockInterruptibly()

性能对比

  • 在jdk5,并发量超过64,性能对比为4
  • 在jdk5,并发量超过64,性能对比为1.x

相关文章

网友评论

      本文标题:synchronized和ReentrantLock对比

      本文链接:https://www.haomeiwen.com/subject/cstibxtx.html