首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
飞天御剑流
掘友等级
java开发工程师
|
666
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
6
文章 5
沸点 1
赞
6
返回
|
搜索文章
最新
热门
ConcurrentHashMap——JAVA1.8实现
ConcurrentHashMap是支持并发的键值对容器,在JAVA1.7版本采用了分段锁的思想来编写,段与段之间可以并发修改,相同的段必须持有锁处理。而1.8进行了改变,采用了CAS和锁的方法,底层还是使用了数组+链表,hash冲突大于8的时候,链表会转换为红黑树提升查询效率…
JAVA并发包解析(四)—— Queue
这篇文章介绍并发包内不同的Queue实现方法,Queue是常用的数据结构之一,并发包对Queue进行了不同的实现。 看一下put、offer和add方法,都是使用了ReentrantLock加锁,然后判断队列是否已满,区别就在于put是一个阻塞方法,当队列满的时候被条件变量阻塞…
JAVA并发包解析(三)——常用同步器分析2
这篇文章继续分析concurrent包下各种同步器的实现原理。 ReadWriteLock顾名思义为读写锁,读请求是不涉及到资源的改变所以不需要加锁,而锁的出现是因为一边读一边写会造成不一致的情况。面对读请求多于写的情况下可以使用读写锁,在加读锁的情况下所有读请求均可正常请求,…
JAVA并发包解析(二)——常用同步器分析1
上一篇文章分析AQS的实现原理,AQS留下了几个try开头的方法让子类实现,根据这几个方法可以实现不同功能的同步器,看一下concurrent包下各种同步器的实现细节。 CountDownLatch是一个计数器,可以让线程等待其他线程执行完毕后再进行执行,比如执行一段业务逻辑需…
JAVA并发包解析(一)——AQS
java concurrent包下面有Semaphore、ReentrantLock和CountDownLatch等多线程的辅助类,而他们内部类都继承了一个抽象类——AbstractQueuedSynchronizer,简称AQS。AQS可以用于构建锁或同步器,一个抽象类能够实…
JAVA Stream简单原理——手写一个Stream流
直到目前为止,只要是使用java8以上的版本,在对List以及Map处理过程中,几乎所有的场景都会涉及到Stream的使用。分析了一下Stream源码,发现Stream的抽象复杂度极高,为了应对广泛的使用场景而进行了高度封装,导致源码看起来非常的头疼。 惰性计算:Stream的…
使用netty实现一个简易的rpc服务器
在看完dubbo和netty的源码以后,决定实践一下,利用netty来实现一个简易的RPC服务器吧。
Netty4.1源码阅读——核心(Bootstrap)
Bootstrap是netty程序的起点,当我们使用netty的时候会涉及到两个实现类ServerBootstrap和Bootstrap,它连接了之前所讲到的Channel,EventLoopGroup等,在对这些组件熟悉了之后,对于bootstarp的源码看起来就非常容易了。…
Netty4.1源码阅读——核心(Channel)
之前几篇文章分析了Pipeline、EventLoop和出站缓存的源码,这几个模块都与Channel有着千丝万缕的关系,将它们与Channel组合在一起形成了完整的处理流程,下面看一下Channel的源码了解具体实现。 register0方法依旧把核心注册交给了doRegist…
Netty4.1源码阅读——核心(ChannelOutboundBuffer)
前面介绍了EventLoopGroup和ChannelPipeline的源码,这一期ChannelOutboundBuffer出站缓存。这篇文章结束后,有关于Channel周边的组建就分析完成,将这些实现类组合在一起,就形成了完整的netty处理流程。 ChannelOutbo…
下一页
个人成就
文章被点赞
38
文章被阅读
29,596
掘力值
1,190
关注了
11
关注者
26
收藏集
2
关注标签
19
加入于
2020-06-19