摘要:1,概述 java并发包已经讲解了volatile,synchronized,CAS,AQS机制等。这些都是整个并发的基础,这篇主要讲一下并发包下的一些组件。 2,CountDownLatch 2.1 demo: 首先演示下这个组件的功能。主线程执行到await()方法后,就会同步等待2个线程执行, 阅读全文
posted @ 2019-09-09 20:17 一缕清风007 阅读 (19) 评论 (0) 编辑
摘要:1,概述 前面我们说了volatile关键字,主要是为了处理并发读写场景,解决可见性的问题。然后又讲了synchronized锁,处理并发写的场景,解决原子性的问题。接着又说了Atomic原子系列,它是基于基本数据类型或者引用来解决原子问题,底层是基于CAS(compare and set),无锁化 阅读全文
posted @ 2019-09-03 15:22 一缕清风007 阅读 (47) 评论 (0) 编辑
摘要:1,概述 上文我们说到volatile是解决并发的可见性和有序性的问题。原子性问题的解决并不是通过volatile来解决的,下面我们看一下例子: 运行多次出现这样的结果: 分析下原因:为什么会出现两次8,两次10这些情况。我们的本意是是顺序递增。其实原因也很简单。当第一个线程执行完flag++(等于 阅读全文
posted @ 2019-09-02 13:29 一缕清风007 阅读 (34) 评论 (0) 编辑
摘要:1,概述 volatile关键字是java并发的基础,主要是解决多线程变量的可见性问题。这篇文章没有源码的讲解,主要是一些理论与原理。首先从一个需求demo切入:有两个线程,一个线程负责修改值,另外一个线程负责读取该值: 这个代码很好理解,就是设置两个线程,一个负责改,然后休眠一下,另一个线程读取修 阅读全文
posted @ 2019-08-30 14:30 一缕清风007 阅读 (22) 评论 (0) 编辑
摘要:1,概述 这篇文章主要介绍下Thread的源码以及一些概念。并发编程涉及的点有很多,如线程的创建和使用,如何控制线程间的通信,syschronized、volatile的使用以及原理,Atomic原子系列的使用以及原理,锁的实现原理(AQS)以及优化,并发包下的安全的集合以及原理,线程池的使用以及实 阅读全文
posted @ 2019-08-29 16:19 一缕清风007 阅读 (20) 评论 (0) 编辑
摘要:1,概述 先来简单聊聊LinkedList的初步印象。LinkedList的底层数据结构是链表。链表的增删操作很快,查询操作比较慢。那么底层是单向链表还是双向链表,增删改查的操作是怎么操作链表的,我们来看看源码。 2,LinkedList核心成员变量 很明显,LinkedList的元素是一个内部类, 阅读全文
posted @ 2019-08-27 19:58 一缕清风007 阅读 (28) 评论 (0) 编辑
摘要:1,概述 先来简单聊聊对ArrayList的理解,后续再去源码中求证。 首先底层的数据结构是数组。因为是数组,所以缺点和优点都很明显: 缺点1:因为数组是定长的,所以当超过数组长度,就会数组扩容和元素拷贝,这个很消耗性能。 缺点2:当随机插入或者删除数据的时候,肯定会伴随着大量的数据移动。这个肯定也 阅读全文
posted @ 2019-08-27 00:58 一缕清风007 阅读 (21) 评论 (0) 编辑
摘要:1,概述 前面讲了hashMap的一些原理,LinkedHashMap继承自hashMap,这篇文章我们来大概看看LinkedHashMap的原理。首先说明一下,HashMap是无序的也就是不会基于插入的顺序来读取,这种场景之下就会考虑使用LinkedHashMap。 2,LinkedHashMap 阅读全文
posted @ 2019-08-26 00:13 一缕清风007 阅读 (154) 评论 (0) 编辑
摘要:1,概述 搞java的人,都应该知道hashMap的底层数据结构是一个数组+链表(+红黑树)。 大体思路:首先是基于key做hash操作,然后与数组长度取模,定位到某个数组位置。如果冲突了(可能是hash冲突,或者是hash值与长度取模之后),就会在该数组位置再挂一个链表。jdk1.8以后当链表长度 阅读全文
posted @ 2019-08-23 20:58 一缕清风007 阅读 (35) 评论 (0) 编辑
摘要:背景:毕业的学校是一所很普通的本科,大学并没有学到什么专业的知识,算是虚度光阴吧,这与985,211的差距可能就是那个时候就拉开了。 这两年心得和体会很多。一个是因为开发时间超过了5年,一个是年纪上了30了。很长一段时间一直在想一个问题,年纪你是增长了,可是你的技术能力呢?多会了几个框架,几个工具? 阅读全文
posted @ 2019-07-28 01:07 一缕清风007 阅读 (30) 评论 (0) 编辑