2018年9月6日
摘要: ThreadLocal 简单解析 基于jdk1.8 ThreadLocal一定不陌生,开发中常用,也是面试里的常客了,但是往往我们可能只是知道该类的作用。学习该类对于个人的多线程编码能力是大有裨益的,同时也可以知道使用中需要注意的地方 ThreadLocal也叫本地线程变量,我们知道ThreadLo 阅读全文
posted @ 2018-09-06 19:06 zjj911 阅读(219) 评论(0) 推荐(0) 编辑
  2018年9月5日
摘要: jdk1.8 ThreadPoolExecutor ThreadPoolExecutor实际就是java的线程池,开发常用的Executors.newxxxxx()来创建不同类型和作用的线程池,其底部实际都是ThreadPoolExecutor。 1.创建 构造方法 以最多参数的为例 2.线程池执行 阅读全文
posted @ 2018-09-05 18:54 zjj911 阅读(301) 评论(0) 推荐(0) 编辑
  2018年6月14日
摘要: AQS concurrent并发包中非常重要的顶层锁类,往往用的比较多的是ReentrantLock,然而ReentrantLock的实现依赖AbstractQueuedSynchronizer在到上层CountDownLatch、Semaphore等不是基于ReentrantLock就是Abstr 阅读全文
posted @ 2018-06-14 18:02 zjj911 阅读(369) 评论(0) 推荐(0) 编辑
  2018年4月25日
摘要: 基于 jdk1.8 Java并发包中提供的一个线程安全且高效的HashMap实现,可以完全替代HashTable,在并发编程的场景中使用频率非常之高。可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping) 实现原理1.8之前Concurre 阅读全文
posted @ 2018-04-25 12:13 zjj911 阅读(10068) 评论(1) 推荐(0) 编辑
  2018年3月28日
摘要: 基础1.List和Set区别 List:1.可以允许重复的对象。 2.可以插入多个null元素。 3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。 4.常用的实现类有 ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的 阅读全文
posted @ 2018-03-28 12:16 zjj911 阅读(435) 评论(0) 推荐(0) 编辑
  2017年12月11日
摘要: java.util.concurrent各组件分析 一 sun.misc.Unsafe 说到concurrent包也叫并发包,该包下主要是线程操作,方便的进行并发编程,提到并发那么锁自然是不可缺少的,包中的类存在了大量关于锁的操作 因此有必要先了解java中锁的原理,锁的底层就是sun.misc.U 阅读全文
posted @ 2017-12-11 18:37 zjj911 阅读(260) 评论(0) 推荐(0) 编辑
  2017年11月23日
摘要: 说明: 1.每个请求在获取锁时,会进队列,并在本节点上本地变量自旋 2.在获取redis锁时先自旋,实际是能保证一个请求只会进行一次setnx,当然在多节点下,存在不是一次的情况,即在本节点获取到线程锁了,但是没获取到redis锁,这时候会进行redis锁的自旋,一个节点只会存在一个请求的redis 阅读全文
posted @ 2017-11-23 17:02 zjj911 阅读(1046) 评论(0) 推荐(0) 编辑
  2017年11月21日
摘要: 记录本人在实际业务中遇到的问题和解决方案。 业务场景:影院营销活动 肯定是需要一套统一的解决方案1.线上做活动,活动有资源限制,比如总金额1W元,1单补贴一定数量金额,无资源后停止活动2.活动的并发量有高有低,最高甚至存在秒抢活动,最低可能1小时就1单3.活动存在资源恢复,即取消订单等,取消后要恢复 阅读全文
posted @ 2017-11-21 18:40 zjj911 阅读(993) 评论(0) 推荐(0) 编辑
  2017年11月15日
摘要: 基于jdk1.8 TreeMap第一个想到的就是有序,当然也不是线程安全 TreeMap实现NavigableMap接口,说明支持一系列的导航方法 一、构造方法 二、put方法 通过put方法,我们就能看出基本数据结构和内存结构了,包括排序等等,这是一个信息量最大的方法 三、get方法 四、其它 T 阅读全文
posted @ 2017-11-15 12:21 zjj911 阅读(1379) 评论(0) 推荐(1) 编辑
  2017年11月14日
摘要: LinkedHashMap 原理 基于jdk1.8 HashMap原理:http://www.cnblogs.com/zhaojj/p/7805376.html LinkedHashMap 继承HashMap 没有重写put resize等方法 因此基本数据结构是相同的数组、链表、红黑树 说说不同: 阅读全文
posted @ 2017-11-14 15:14 zjj911 阅读(3583) 评论(0) 推荐(0) 编辑