文章预览
在Java中提供了synchronized关键字来保证只有一个线程能够访问同步代码块。 既然已经提供了synchronized关键字,那为何在Java的SDK包中,还会提供Lock接口呢? 这是不是重复造轮子,多此一举呢? 今天,我们就一起来探讨下这个问题。 再造轮子? 既然JVM中提供了synchronized关键字来保证只有一个线程能够访问同步代码块,为何还要提供Lock接口呢?这是在重复造轮子吗?Java的设计者们为何要这样做呢?让我们一起带着疑问往下看。 为何提供Lock接口? 很多小伙伴可能会听说过,在Java 1.5版本中,synchronized的性能不如Lock,但在Java 1.6版本之后,synchronized做了很多优化,性能提升了不少。那既然synchronized关键字的性能已经提升了,那为何还要使用Lock呢? 如果我们向更深层次思考的话,就不难想到了:我们使用synchronized加锁是无法主动释放锁的,这就会涉及
………………………………