新人专享好礼
凡未购买过小册的用户,均可领取三张 5 折新人专享券,购买小册时自动使用专享券,最高可节省 45 元。
小册新人 5 折券
最高可省 15 元
小册新人 5 折券
最高可省 15 元
小册新人 5 折券
最高可省 15 元
注:专享券的使用期限在领券的七天内。
一键领取
领取成功
购买小册时自动使用专享券
领取失败
本活动仅适用于小册新用户
知道了
提示
根据我国
《互联网跟帖评论服务管理规定》
,您需要绑定手机号后才可在掘金社区内发布内容。
绑定手机
首页
首页
沸点
话题
小册
活动
写文章
登录
注册
删除沸点
删除沸点后不可恢复,确定删除吗?
举报沸点
请选择举报理由
和话题不符
恶意攻击谩骂
广告营销
天堂同志
Java工程师
北京酷划在线网络技术有限公司
12
关注
112
关注者
371
掘力值
关注
关注
动态
专栏
28
沸点
分享
0
赞
34
文章 34
沸点
赞
34
小册
1
收藏集
0
关注
更多
收藏集
关注
关注
专栏
热门
最新
天堂同志
2天前
Netty源码分析系列之服务端Channel初始化
老规矩,Netty的源码很难、很复杂,为了更快的学懂新的知识,所以还是带着问题来学习源码。Netty作为一款基于事件驱动的高性能网络框架,其底层实际上仍然使用的是JDK里面的NIO,Netty在JDK的NIO上做了大量优化,以及封装,降低了开发人员使用NIO的难度。 使用JDK原生的NIO进行网络...
5
收藏
阅读全文
天堂同志
5天前
Netty源码分析系列之Reactor线程模型
对于网络编程而言,一方面需要保证基本功能的正确性,另一方面还需要保证程序的高性能。而网络程序高性能的主题之一就是网络IO,不同的IO模型,对程序的性能影响是非常明显的。 对于传统的网络框架而言,服务端通常采用的是BIO的通信模型。对于BIO通信模型,它通常使用一个专门的线程来负责接收网络连接,然后...
5
收藏
阅读全文
天堂同志
6天前
别再问我Runnable、Callable、Future、FutureTask有什么关联了
众所周知,当我们使用线程来运行任务时,是不支持获取返回值的,因为Runnable接口的run()方法使用的,方法不支持返回值。而在很多场景下,我们一方面需要通过线程来异步执行任务,以便提升性能,另一方面还期望能获取到任务的执行结果。尤其是在RPC框架中,异步获取任务返回值,几乎是每一个RPC接口要...
16
收藏
阅读全文
天堂同志
13天前
面试官居然问我BIO、NIO与Netty
年初的时候给自己定了一个目标,就是学习Netty的源码,因此在Q2的OKR上,其中一个目标就是学习Netty源码,并且在部门内进行一次Netty相关的学习分享。然而,出生牛犊不怕虎,当时甚至都不知道Netty怎么用,上来就是看源码,看了不到半天就懵了,连学下去的信心都没了。到Q2结束,我的Nett...
6
收藏
阅读全文
天堂同志
16天前
面试官:为什么《阿里巴巴Java开发手册》上要禁止使用Executors来创建线程池
在《阿里巴巴Java开发手册》第一章第6讲中,强制规定了线程池不允许使用Executors去创建。那么为什么呢?这就得从线程池和Executors这个类的本质上说起了。 在Java中提供了两种类型的线程池来供开发人员使用,分别是和。其中ScheduledThreadPoolExecutor...
13
3
收藏
阅读全文
天堂同志
19天前
面试官:来!聊聊线程池的实现原理以及使用时的问题
无论是在工作中,还是在书本中,我们都可以听到或者看到关于线程在使用时的一些建议:不要在代码中自己直接创建线程,而是通过线程池的方式来使用线程。使用线程池的理由大致可以总结为以下几点。 在线程池中存在几个概念:核心线程数、最大线程数、任务队列。核心线程数指的是线程池的基本大小;最大线程数指的...
59
11
收藏
阅读全文
天堂同志
23天前
Thread.join()源码分析
在join()方法中最终会调用到对象的wait()方法,而wait()方法通常是和notify()或者notifyAll()方法成对出现的。而在使用join()方法时,我们压根就没有写notify()或者notifyAll()方法,这是为什么呢? 如果你知道答案,那么本文将对你…
7
收藏
阅读全文
天堂同志
24天前
并发工具类CyclicBarrier的源码分析以及使用场景
CyclicBarrier的功能与CountDownLatch的功能十分类似,也是控制线程的执行顺序,但是它与CountDownLatch的区别是,CyclicBarrier是让一组线程阻塞在同一屏障(同步点)处,直到最后一个线程到达屏障(也就是屏障的计数器减为0),屏障才会打…
10
收藏
阅读全文
天堂同志
25天前
并发工具类CountDownLatch的源码分析以及使用场景
CountDownLatch是JUC包下提供的一个工具类,它的作用是让一个或者一组线程等待其他线程执行完成后,自己再接着执行。从命名上可以猜出,它是通过倒着计数,最后打开门闩这把锁,即每一个线程忙完自己的工作后,让计数器递减一次,当计数器递减到0时,锁(门闩)被打开,主线程(或…
7
收藏
阅读全文
天堂同志
26天前
再不学习并发编程明年都没钱买刀剁手啦!!!
Semaphore翻译过来就是信号的意思,在Java中通常称它为信号量,是JUC包下提供的一个并发工具类,它的作用就是控制同时访问共享资源的线程数。什么意思呢? 假如有个停车场,一共有100个车位,那么同一时刻,停车场内最多只能停放100辆车。当停车场没有空余车位时,停车场入口…
14
收藏
阅读全文
天堂同志
1月前
读写锁ReadWriteLock的实现原理
synchronized和ReentrantLock实现的锁是排他锁,所谓排他锁就是同一时刻只允许一个线程访问共享资源,但是在平时场景中,我们通常会碰到对于共享资源读多写少的场景。对于读场景,每次只允许一个线程访问共享资源,显然这种情况使用排他锁效率就比较低下,那么该如何优化呢…
6
1
收藏
阅读全文
天堂同志
1月前
并发编程中条件变量Condition的源码分析
在并发领域中需要解决的两个问题:互斥与同步,互斥指的是同一时刻只允许一个线程访问共享资源,这一点AQS的同步队列已经帮助我们解决了。同步指的是线程间如何进行通信和协作,那么AQS又是如何来解决同步问题的呢?答案就是今天的主角:Condition。 Condition是JUC包下…
6
收藏
阅读全文
天堂同志
1月前
公平锁与非公平锁的对比
1. 问题 在上一篇文章中结合源码介绍了公平锁和非公平锁的实现【文章链接】。这一篇文章将从公平性和性能方面对比一下两者。 在阅读本文之前,可以先思考一下下面两个问题。 1. 非公平锁一定不公平吗? 2. 公平锁与非公平锁的性能谁更好? 2. 对比 主要从公平性和性能这两个方面来…
5
收藏
阅读全文
天堂同志
1月前
可重入锁(ReentrantLock)源码分析
1. ReentrantLock是如何在Java层面(非JVM层面)实现锁的? 2. 什么是公平锁?什么是非公平锁? Lock是JUC包下的一个接口,里面定义了获取锁、释放锁等和锁相关的方法,ReentrantLock是Lock接口的一个具体实现类,它的功能是可重入地独占式地获…
8
收藏
阅读全文
天堂同志
1月前
队列同步器(AQS)源码分析
AQS中获取锁和释放锁的方法很多,今天以acquire()和release()为例来进行源码分析,其他方法的逻辑与这两个方法逻辑基本一样。 以上面demo为例,先创建了一个公平锁,然后调用lock()方法来加锁,最后调用unlock()方法释放锁。在lock()方法中会调用到S…
4
收藏
阅读全文
天堂同志
1月前
队列同步器(AQS)的设计原理
1. 前言 在Java中锁所可以分为两大类,一类是通过synchrinized关键字实现的隐式锁,一类是JUC包的锁。前者是通过JVM实现的,后者是根据队列同步器(AQS)实现的,也就是今天的主角。 在JUC包下实现了很多锁以及工具类,例如ReentrantLock、ReadW…
6
收藏
阅读全文
天堂同志
1月前
Unsafe类的源码解读以及使用场景
2. 如何获取UNSAFE类的实例 3. UNSAFE功能介绍以及实际应用
2
收藏
阅读全文
天堂同志
1月前
初识CAS的实现原理
2.1 JAVA中的CAS实现 2.2 处理器中的原子操作的实现
3
收藏
阅读全文
天堂同志
1月前
Spring中是如何处理循环依赖的
首先我们定义如下两个类:UserService和OrderService,并让它们相互依赖。 Spring在启动时,会在refresh()方法中创建所有的单例Bean,并完成自动装配。对于上面我们定义的两个类,假如先创建OrderService,那么就会先调用getBean(o…
3
收藏
阅读全文
天堂同志
2月前
一次策略设计模式的实际应用
2. 策略设计模式的思想与特点
3
收藏
阅读全文
提示
删除专栏文章会扣除相应的掘力值,且文章不可恢复。
个人成就
获得点赞
250
文章被阅读
12,163
掘力值
371
关注了
12
关注者
112
收藏集
0
关注标签
56
加入于
2018-11-28
立即下载