随笔分类 -  Java

摘要:工作中许多地方需要涉及到多线程的设计与开发,java多线程开发当中我们为了线程安全所做的任何操作其实都是围绕多线程的三个特性:原子性、可见性、有序性展开的。针对这三个特性的资料网上已经很多了,在这里我希望在站在便于理解的角度,用相对直观的方式阐述这三大特性,以及为什么要实现和满足三大特性。 一、原子 阅读全文
posted @ 2018-11-29 18:35 DaFanJoy 阅读(6319) 评论(1) 推荐(1) 编辑
摘要:Future与FutureTask都是用于获取线程执行的返回结果。下面我们就对两者之间的关系与使用进行一个大致的介绍与分析 一、Future与FutureTask介绍: Future位于java.util.concurrent包下,它是一个接口 Future接口中声明了5个方法,下面介绍一下每个方法 阅读全文
posted @ 2018-10-14 17:28 DaFanJoy 阅读(1420) 评论(0) 推荐(1) 编辑
摘要:sofa-rpc是阿里开源的一款高性能的rpc框架,这篇文章主要是对sofa-rpc provider启动服务流程的一个代码走读,下面是我简单绘制的一个基本的关系流程图 下面我们根据sofa-rpc代码,对流程进行一个跟踪与走读。我们以BoltServer的为例 可以看到sofa-rpc通过Prov 阅读全文
posted @ 2018-10-10 10:00 DaFanJoy 阅读(1471) 评论(0) 推荐(1) 编辑
摘要:在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。而线程池不允许使用Executors去创建,而要通过ThreadPoolExecut 阅读全文
posted @ 2018-10-04 21:05 DaFanJoy 阅读(212976) 评论(13) 推荐(45) 编辑
摘要:Map是java中的一种数据结构,围绕着Map接口,有一系列的实现类如Hashtable、HashMap、LinkedHashMap和TreeMap。而其中HashMap和Hashtable我们平常使用的最多。 HashMap与Hashtable表面上看没有太大区别,但在一些使用细节和内部实现上有诸 阅读全文
posted @ 2018-10-01 12:50 DaFanJoy 阅读(427) 评论(0) 推荐(1) 编辑
摘要:基于springboot的多线程程序开发过程中,由于本身也需要注入spring容器进行管理,才能发挥springboot的优势。所以这篇文字主要用来记录开发中两者结合时需要注意的一些事项。 第一步我们把线程类的实例注入sping容器进行管理 这里使用springboot @Import 注解,把Th 阅读全文
posted @ 2018-09-23 17:50 DaFanJoy 阅读(12942) 评论(0) 推荐(1) 编辑
摘要:List是java重要的数据结构之一,我们经常接触到的有ArrayList、Vector和LinkedList三种,他们都继承来自java.util.Collection接口,类图如下 接下来,我们对比下这三种List的实现和不同: 一、基本实现 1、ArrayList和Vector使用了数组实现, 阅读全文
posted @ 2018-09-22 19:03 DaFanJoy 阅读(5041) 评论(0) 推荐(1) 编辑