Java精通并发-Lock锁机制深入详解
2024-10-20 21:07:39
从这次开始接触Java1.5推出的并发包中的东东,先看一下jdk中的并发包:
接下来咱们则会集中对这些并发包中的核心进行深入了解,不光要学会怎么用这些并发包中的类,而且还得知道这些功能背后运行的原理, 所以手踏实地的一步步从基础开始展开对它的剖析,在JDK1.5之前要想对代码进行同步只有一个选择,利用syncronized关键字,但是在之后推出了一个全新的同步方式,那就是Lock锁,这个我们在实际工作中也会经常看到它的使用,下面瞅下它:
而在并发包中很多的组件都是直接或者间接的来源于它,瞅一眼:
所以对于这个接口的理解是至关重要的,而系统的了解它当然得从读官方说明开始,而它的javadoc挺多的。。没关系,逐字进行大体了解:
其中这里涉及到了一个Condition新的对象,如下:
之后学到时再来详细看它,继续往下读Lock:
这里稍加说明一下,对于实际中可能用这么一个场景:大部分都是读操作,只有小部分是写操作,而如果几个线程都是对一个资源进行读取,那很明显是不需要上锁的,而有些情况又需要写则肯定得上锁,此时读写锁ReadWriteLock就有它的适用场景了,也是并发包中的,瞅一眼:
其中可以看到它里面对于读和写锁进行了分开了,先有个大体了解,之后再详学,继续读:
上面的这句话清楚的描述了使用synchronized关键字和使用Lock的它们之间的一个区别,下面继续:
从上面这段说明中可以清晰的感受到Lock跟synchronized的一个不同。
最新文章
- file命令
- csharp: Oracle Stored Procedure DAL using ODP.NET
- 在<;s:iterator>;标签里给动态表格添加序号
- 在GMIC听“移动互联网+医疗”的感受 2015-04-29
- IOS ID生成器
- elixir 高可用系列 - 目录
- 用C#实现RSS的生成和解析,支持RSS2.0和Atom格式
- ssh面试题
- CS小分队第一阶段冲刺站立会议(5月9日)
- ImageView的src和background的区别
- js 类似php中foreach的方法
- 微软AJAX解决方案
- Selenium webdriver 开始
- MyBatis学习-SQL 符号篇
- tp框架实现ajax注册验证
- 【stm32中断优先级--珍藏版】
- 2386:Lake Counting-poj
- Movavi Video Editor 15 Plus Mac怎样更改视频的分辨率?
- Scrapy爬虫入门
- ORACLE 通过连接查询更新 update select
热门文章
- javascript 数组之间增加某个符合arr.join(&#39;、&#39;);
- 《Linux就该这么学》培训笔记_ch07_RAID和LVM
- magic模块 :Exception Value:failed to find libmagic. Check your installation
- NamedParameterJdbcTemplate举例使用
- @AspectJ注解的value属性
- go 语言的一个赋值操作
- VisualSVN 新版本终于支持一个解决方案下多workcopy了,并解决了上个版本一个重要BUG
- lucene字典实现原理(转)
- Java学习:方法的使用与注意事项
- 可落地的DDD(3)-如何利用DDD进行微服务的划分