synchronized和reentlock区别

2019-05-25  本文已影响0人  联想桥南
synchronized原理

synchronized原理

Reentlock原理
二者的对比区别
  1. synchronized是jvm层面实现的,对开发使用这透明;
    而reentlock是jdk并发包下的工具类,提供的是api的访问模式
  2. reentlock提供线程可中断模式(有超时参数),而synchronized只能等待jvm自己去判断是否中断。
  3. reentlock需要自己去释放锁 (finally后);而synchronized不用关系
  4. reentlock提供公平锁和非公平锁的实现,synchronized本身是非公平锁
  5. reentlock提供condition api工具,同一个lock下可创建多个condition,condition可以很方便的实现分组唤醒线程。
    严格的循环打印A,B字符串,就可以用这个去实现。
  6. 实现原理,synchronized是通过在字节码加对象监视器实现的。
    reentlock是依赖基于硬件支持的CAS操作实现的。

相同点:
都是可重入锁
性能是做了优化。相差不多

上一篇 下一篇

猜你喜欢

热点阅读