2018年4月7日
摘要: Jdk1.5以后,在java.util.concurrent.locks包下,有一组实现线程同步的接口和类,说到线程的同步,可能大家都会想到synchronized关键字, 这是java内置的关键字,用来处理线程同步的,但这个关键字有很多的缺陷,使用起来也不是很方便和直观,所以就出现了Lock,下面 阅读全文
posted @ 2018-04-07 13:47 junjiang3 阅读(9805) 评论(0) 推荐(0) 编辑
  2018年4月1日
摘要: 以前看过HashMap的内部实现,知道HashMap是使用Node数组+链表+红黑树的数据结构来实现,如下图所示。但是HashMap是非线程安全,在多线程环境不能够使用。 不过JDK在其并发包中为我们提供了线程安全的ConcurrentHashMap。因此,来学习以下其内部是如何保证线程安全的。 H 阅读全文
posted @ 2018-04-01 12:56 junjiang3 阅读(44459) 评论(0) 推荐(2) 编辑
  2018年3月25日
摘要: 来源:https://www.cnblogs.com/zhangjk1993/archive/2017/03/29/6641745.html 一、前言 ThreadLocal 主要用来提供线程局部变量,也就是变量只对当前线程可见,本文主要记录一下对于 ThreadLocal 的理解。更多关于 Jav 阅读全文
posted @ 2018-03-25 18:11 junjiang3 阅读(712) 评论(0) 推荐(0) 编辑
  2018年3月17日
摘要: 一、引入 原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作是原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(syc 阅读全文
posted @ 2018-03-17 20:47 junjiang3 阅读(4156) 评论(1) 推荐(2) 编辑
  2018年3月11日
摘要: 一、线程池介绍 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池可以对线程进行统一的分配、调优和监控,并有以下好处: (1)降低资源消耗。 (2)提高响应速度。 (3)提高线程的可管理性。 Java1.5引入的Executor框架把任务的提交和执行进行解耦 阅读全文
posted @ 2018-03-11 16:39 junjiang3 阅读(495) 评论(0) 推荐(0) 编辑
  2018年3月4日
摘要: 一、问题描述 现实中常遇到多分类学习任务,有些二分类学习方法可直接推广到多分类,但在更多情况下,我们是基于一些基本策略,利用二分类学习器来解决多分类问题。 假设有N个类别C1,C2,......,CN,多分类学习的基本思路是“拆解法”,即将多分类任务拆分为若干个二分类任务求解。具体来说,先对问题进行 阅读全文
posted @ 2018-03-04 19:49 junjiang3 阅读(11788) 评论(0) 推荐(0) 编辑
  2018年2月4日
摘要: 这周在看Java的I/O流时,看到了装饰模式,可是以前没有接触过,因此学习了下。 一、装饰模式的定义 装饰模式(Decorator Pattern)是一种比较常见的模式,其定义如下:Attach addtitional responsibilities to an object dynamicall 阅读全文
posted @ 2018-02-04 18:19 junjiang3 阅读(176) 评论(0) 推荐(0) 编辑
  2018年1月28日
摘要: 这周在看项目的相关代码时,接触到了Hystrix,因此查询了相关资料学习了下。 一、什么是Hystrix Hystrix是Netflix针对微服务分布式系统的熔断保护中间件,当我们的客户端连接远程的微服务时,有两种情况需要考虑:首先,如果远程系统当机了我们怎么办? 其次,我们如何管理对远程微服务的调 阅读全文
posted @ 2018-01-28 18:57 junjiang3 阅读(590) 评论(0) 推荐(0) 编辑
  2018年1月21日
摘要: 这周在项目中遇到这样一个Bug,代码大致是这样的,有一个LogEntity日志类,里面有一个InnerLog负责存储每次请求的RPCInfo相关信息, 每次请求的时候会把RPC相关信息加入到InnerLog中。 然后在Controller中,注入LogEntity,记录日志信息。 然后在压测的时候发 阅读全文
posted @ 2018-01-21 17:52 junjiang3 阅读(5236) 评论(0) 推荐(0) 编辑
  2018年1月14日
摘要: 这周在阅读《阿里巴巴Java开发手册》时,在并发处理一节的日期处理中,其强调SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果 定义为 static,必须加锁,或者使用 DateUtils 工具类。并且建议如果是 JDK8 的应用,可以使用 Instant 阅读全文
posted @ 2018-01-14 11:29 junjiang3 阅读(2569) 评论(0) 推荐(0) 编辑