java 并发
匠心零度
对技术非常热爱,特别是JVM,高并发、锁系列,以及全链路相关优化方面。
展开
-
系统学习java高并发系列一
JAVA服务端或者后端需要大量的高并发计算,所以高并发在JAVA服务端或者后端编程中显的格外重要了。首先需要有几个概念:1.同步和异步 同步异步是来形容方法的一次调用的,同步必须等等方法调用结束后才可以继续后续的操作,而异步方法调用就会返回(真正的执行一般在另外一个线程中)就可以继续后续操作了。2.并发和并行 这两个概念都是表示2个或者多个任务一起执行原创 2017-07-02 12:42:40 · 3578 阅读 · 1 评论 -
idea万能快捷键(alt enter),你不知道的17个实用技巧!!!
说明IDEA里有一个万能快捷键(alt enter),功能非常强大,同一个快捷键,可以根据不同的语境提示你不同的操作,很多人可能还不了解这些功能,在处理代码的时候还手动处理,了解这些技巧之后,你编码也是一种享受。万能快捷键(alt enter)可以帮你做很多事情,我大概总结了17点:转换lambda表达式equals的翻转自动导包异常捕获SimpleDateFormat转换为Th...原创 2019-07-19 21:12:05 · 5251 阅读 · 9 评论 -
惊:FastThreadLocal吞吐量居然是ThreadLocal的3倍!!!
说明接着上次手撕面试题ThreadLocal!!!面试官一听,哎呦不错哦!本文将继续上文的话题,来聊聊FastThreadLocal,目前关于FastThreadLocal的很多文章都有点老有点过时了(本文将澄清几个误区),很多文章关于FastThreadLocal介绍的也不全,希望本篇文章可以带你彻底理解FastThreadLocal!!!FastThreadLocal是Netty提供的,在...原创 2019-07-02 23:10:14 · 9077 阅读 · 4 评论 -
手撕面试题ThreadLocal!!!
说明面试官:讲讲你对ThreadLocal的一些理解。那么我们该怎么回答呢????你也可以思考下,下面看看零度的思考;ThreadLocal用在什么地方?ThreadLocal一些细节!ThreadLocal的最佳实践!思考ThreadLocal用在什么地方?讨论ThreadLocal用在什么地方前,我们先明确下,如果仅仅就一个线程,那么都不用谈ThreadLo...原创 2019-06-19 12:30:20 · 3753 阅读 · 8 评论 -
阿里一道Java并发面试题 (详细分析篇)
说明前天分享了一篇关于阿里的“Java常见疑惑和陷阱”的文章,有人说这个很早就有了,可能我才注意到,看完之后发现内容非常不错,有几个我也是需要停顿下想想,如果后续有机会我录制一个视频把这个ppt里面的所有内容,根据我的理解和知道的给大家分享一遍。如果你之前还没有看过建议好好看一遍:Java常见疑惑和陷阱,如果你需要获取完整ppt,可以在公号对话框回复: “PPT” 即可获取完整文件,只要你发...原创 2019-05-10 07:06:52 · 7749 阅读 · 8 评论 -
RocketMQ集群消费的那些事
说明RocketMQ集群消费的时候,我们经常看到类似注释里面 (1,(2 的写法,已经有时候有同学没注意抛异常的情况就是(3 模拟的情况。那么这3种情况到底是怎么样的呢?你是否都了然于心呢?下面我们一起来看看吧,本文主要在讲解RocketMQ集群消费有些内容会提到但是不会深入讲解(以后有机会讲其他的)。RocketMQ集群消费执行过程虽然说是PushConsumer其实本质还是拉。...原创 2018-12-27 22:37:17 · 2729 阅读 · 4 评论 -
Netty推荐addListener回调异步执行
说明Netty推荐使用addListener的方式来回调异步执行的结果,这种方式优于Future.get,能够更精确地把握异步执行结束的时间。错误理解使用addListener的方式代码如下:代码运行结果:**疑惑:**很疑惑啊,按照上面Netty推荐使用addListener的方式来回调异步执行的结果,这种方式优于Future.get,能够更精确地把握异步执行结束的时间。而且也...原创 2018-12-27 21:55:26 · 7764 阅读 · 1 评论 -
史上最难的一道Java面试题 (分析篇)
简书 匠心零度 转载请注明原创出处,谢谢!无意中了解到如下题目,觉得蛮好。题目如下:public class TestSync2 implements Runnable { int b = 100; synchronized void m1() throws InterruptedException { b = 1000; T原创 2017-10-16 19:56:45 · 42742 阅读 · 104 评论 -
史上最难的一道Java面试题
转载请注明原创出处,谢谢!无意中了解到如下题目,觉得蛮好,准备拿来分析分析。题目如下:public class TestSync2 implements Runnable { int b = 100; synchronized void m1() throws InterruptedException { b = 1000; Thread.sleep(原创 2017-09-20 21:01:02 · 2689 阅读 · 2 评论 -
系统学习java高并发系列三
首先需要说说线程安全?关于线程安全一直在提,比如StringBuilder和StringBuffer有什么区别? 经常就会出现关于线程安全与线程非安全,可能一直在提自己没有细细想想,如果忽然问你啥是线程安全的概念?可能你需要短暂停顿几秒,线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据,其实关于线程安全的定义我想不到好的,百度了下,也没有发现一个特别好的解释原创 2017-07-23 16:00:05 · 3047 阅读 · 2 评论 -
系统学习java高并发系列二
什么是线程? 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。线程状态转换1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后原创 2017-07-16 19:53:02 · 4464 阅读 · 9 评论 -
看完这篇还不清楚Netty的内存管理,那我就哭了!
说明在学习Netty的时候,ByteBuf随处可见,但是如何高效分配ByteBuf还是很复杂的,Netty的池化内存分配这块还是比较难的,很多人学习过,看过但是还是云里雾里的,本篇文章就是主要来讲解:**Netty分配池化的堆外内存的细节,**期待可以让你明白!!!由于为了更好的表达,文章中的图我最少画了6小时,画的不熟悉,并且也强调一些细节上。由于该源码中涉及到大量的二进制操作,建议看看我...原创 2019-08-11 08:08:14 · 1149 阅读 · 0 评论