java lock锁机制_Java精通并发-Lock锁机制深入详解

从这次开始接触Java1.5推出的并发包中的东东,先看一下jdk中的并发包:

60eda14337747150e84341c04a3f8a27.png

接下来咱们则会集中对这些并发包中的核心进行深入了解,不光要学会怎么用这些并发包中的类,而且还得知道这些功能背后运行的原理, 所以手踏实地的一步步从基础开始展开对它的剖析,在JDK1.5之前要想对代码进行同步只有一个选择,利用syncronized关键字,但是在之后推出了一个全新的同步方式,那就是Lock锁,这个我们在实际工作中也会经常看到它的使用,下面瞅下它:

a69d2eaf4108aa74eb43b7d733611573.png

而在并发包中很多的组件都是直接或者间接的来源于它,瞅一眼:

c99b32d61f072b45366d5710bd00a2fe.png

所以对于这个接口的理解是至关重要的,而系统的了解它当然得从读官方说明开始,而它的javadoc挺多的。。没关系,逐字进行大体了解:

01ca46a8bfba878e6dda7c0b0e138e8f.png

其中这里涉及到了一个Condition新的对象,如下:

90f1aa958e4893c89c186cd8d6d42032.png

之后学到时再来详细看它,继续往下读Lock:

656346ff51669dddd906b95dce94ba49.png

这里稍加说明一下,对于实际中可能用这么一个场景:大部分都是读操作,只有小部分是写操作,而如果几个线程都是对一个资源进行读取,那很明显是不需要上锁的,而有些情况又需要写则肯定得上锁,此时读写锁ReadWriteLock就有它的适用场景了,也是并发包中的,瞅一眼:

16b13c8def03471f254a3ee89f833436.png

其中可以看到它里面对于读和写锁进行了分开了,先有个大体了解,之后再详学,继续读:

3ebb0d0b81a571633ab352a8c859084c.png

2bc9c2ea81ed644b276f752647f907f2.png

61b2ee92cd155fa164095cefbaba3b93.png

上面的这句话清楚的描述了使用synchronized关键字和使用Lock的它们之间的一个区别,下面继续:

1787144cd4fe14acc0d7cae15ed142d3.png

b6410acfa8eb56cf8f319baf6d548931.png

6665f86e212d4e211f68d05d5941eaaa.png

从上面这段说明中可以清晰的感受到Lock跟synchronized的一个不同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值