腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
chenssy
专栏成员
举报
142
文章
138397
阅读量
52
订阅数
订阅专栏
申请加入专栏
全部文章(142)
其他(69)
java(50)
spring(14)
容器(8)
jvm(7)
api(6)
编程算法(5)
安全(5)
jdk(4)
数据结构(4)
go(3)
云数据库 SQL Server(3)
ide(3)
人工智能(3)
http(3)
云数据库 Redis(2)
git(2)
存储(2)
缓存(2)
jdbc(2)
hashmap(2)
微服务(2)
官方文档(1)
bootstrap(1)
xml(1)
html(1)
android(1)
数据库(1)
sql(1)
tomcat(1)
企业(1)
分布式(1)
压力测试(1)
mybatis(1)
二叉树(1)
spring cloud(1)
socket编程(1)
大数据(1)
数据分析(1)
系统架构(1)
架构设计(1)
unicode(1)
搜索文章
搜索
搜索
关闭
怎么理解Condition?
http
java
jdk
安全
api
在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurrent包提供的一种独占锁的实现。它继承自Dong Lea的 AbstractQueuedSynchronizer(同步器),确切的说是ReentrantLock的一个内部类继承了AbstractQueuedSynchronizer,ReentrantLock只不过是代理了该类的一些方法,可能有人会问为什么要使用内部类在包装一层? 我想是安全的关系,因为AbstractQueuedSynchronizer中有很多方法,还实现了共享锁,Condition(稍候再细说)等功能,如果直接使ReentrantLock继承它,则很容易出现AbstractQueuedSynchronizer中的API被无用的情况。
用户1655470
2018-12-06
862
0
【死磕Java并发】—–J.U.C之并发工具类:Semaphore
java
jdk
api
信号量Semaphore是一个控制访问多个共享资源的计数器,和CountDownLatch一样,其本质上是一个“共享锁”。
用户1655470
2018-07-24
278
0
【死磕Java并发】-----Java内存模型之happens-before
java
jdk
在上篇博客(【死磕Java并发】—–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题。那么我们正确使用同步、锁的情况下,线程A修改了变量a何时对线程B可见?
用户1655470
2018-07-24
314
0
【死磕Java并发】-----J.U.C之Java并发容器:ConcurrentHashMap
java
容器
hashmap
jdk
此篇博客所有源码均来自JDK 1.8 HashMap是我们用得非常频繁的一个集合,但是由于它是非线程安全的,在多线程环境下,put操作是有可能产生死循环的,导致CPU利用率接近100%。为了解决该问题,提供了Hashtable和Collections.synchronizedMap(hashMap)两种解决方案,但是这两种方案都是对读写加锁,独占式,一个线程在读时其他线程必须等待,吞吐量较低,性能较为低下。故而Doug Lea大神给我们提供了高性能的线程安全HashMap:ConcurrentHashMap
用户1655470
2018-04-26
1.1K
0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档