Young87

当前位置:首页 >个人收藏

阿里P8面试扯了半小时:Java的Lock接口到底有什么用?

并发编程的关键是什么,知道吗?

我淡淡一笑,还好平时就玩的高并发架构设计,不然真被你唬住了!

  • 互斥
    同一时刻,只允许一个线程访问共享资源
  • 同步
    线程之间通信、协作

而且这俩问题,管程都能解决。JUC通过LockCondition接口实现管程

  • Lock 解决互斥
  • Condition 解决同步

只见 P8 不慌不忙,又开始问道:

synchronized也是管程的实现,既然Java已经在SDK实现了管程,为什么还要提供另一种实现?难道JDK作者们喜欢“重复造轮子”?

它们还是有很大区别的。在JDK 1.5,synchronized性能差于Lock,但1.6后,synchronized被优化,将性能提高,所以1.6后又推荐使用synchronized。但性能问题只要优化一下就行了,没必要“重复造轮子”。

死锁问题讨论,推荐看我另一篇文章:

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 西瓜视频稳定性治理体系建设二:Raphael 原理及实践

下一篇: 阿里华为等大厂的Redis分布式锁是如何设计的?

精华推荐