并发
文章平均质量分 95
TheWhc
这个作者很懒,什么都没留下…
展开
-
【并发复习】 ---- Synchronized底层原理深入分析
分析Synchronized作用范围、底层原理(字节码、对象头、监视器锁)、锁优化(轻量级锁、偏向锁)、面试点、脑图总结原创 2021-05-03 22:36:35 · 491 阅读 · 1 评论 -
【并发编程笔记】 ---- Callable和Future获取子线程返回的结果
1. Runnable的缺陷2. Callable接口3. Future类原创 2020-05-25 21:33:05 · 453 阅读 · 0 评论 -
【并发编程笔记】 ---- AQS内部原理解析及应用源码解析
主要对AQS内部原理解析(同步状态、同步队列、获取/释放方法) 以及 AQS在CountDownLatch、Semaphore、ReentrantLock应用源码解析,最后用AQS实现一个简单的线程协作器原创 2020-05-22 10:36:43 · 263 阅读 · 0 评论 -
【并发编程笔记】 ---- 线程池基础概念知识点
1. 线程池介绍 2. 线程池参数 3. 添加线程规则 4. 线程池创建问题5. 线程池关闭问题 6.线程池拒绝问题 7.线程池状态 8.使用线程池注意点 描述一些线程池概念原创 2020-05-17 23:44:15 · 175 阅读 · 0 评论 -
【并发编程笔记】 ---- 控制并发流程(CountDownLatch、Semaphore、Condition、CyclicBarrier介绍和用法)
1. 什么是并发控制流程?2. CountDownLatch3. Semaphore4. Condition5. CyclicBarrier原创 2020-05-15 15:16:56 · 393 阅读 · 1 评论 -
【并发编程笔记】 ---- 分析CopyOnWriteArrayList及BlockingQueue(最后并发容器总结)
重点分析CopyOnWriteArrayList和ArrayBlockingQueue最后附脑图对并发容器进行总结归纳原创 2020-05-12 18:12:22 · 443 阅读 · 0 评论 -
【并发编程笔记】 ---- 浅谈ConcurrentHashMap
目录1. 同步容器2. 并发容器概述3. ConcurrentHashMap(重点、面试常考点)4. 脑图1. 同步容器普通的集合类ArrayList、LinkedList、HashMap等等是线程不安全的在多线程共同操作这些类对象时,会发生竞争条件或者操作异常。如果我们需要在多线程下使用这些集合类,就需要显示地进行同步操作(用synchronized关键字等对集合类的操作代码加同步锁),如果不这样做,可以使用Java提供的同步容器,同步容器默认是线程安全的,对它的操作都是已经默认加了同步原创 2020-05-10 22:00:38 · 337 阅读 · 0 评论 -
【并发编程笔记】 ---- ThreadLocal原理及线程池内存泄露案例
目录1. ThreadLocal2. ThreadLocal使用示例3. 4. 1. ThreadLocalThreadLock是JDK包提供的,它提供了线程本地变量,也就是如果创建了一个ThreadLocal变量,访问这个变量的每个线程都会有这个变量的一个本地副本。当多个线程操作这个变量时,实际操作的是自己本地内存里面的变量,从而避免了线程安全问题。创建一个ThreadLock...原创 2020-05-08 16:57:34 · 538 阅读 · 1 评论 -
【并发编程笔记】 ---- DCL单例模式及volatile问题
文章目录1. 单例模式中的懒汉式2. 单例模式中的双检索/双重校验锁(DCL)3. 对象创建过程4. 基于volatile解决方案1. 单例模式中的懒汉式1.1 线程不安全的懒汉式public class Singleton { private static Singleton instance; private Singleton (){} ...原创 2020-05-07 20:48:30 · 313 阅读 · 0 评论 -
【并发编程笔记】 ---- CPU底层及缓存行知识
文章目录1. 计算机的组成2. 存储器的层次结构3. Cache Line(缓存行)4. 指令重排序1. 计算机的组成(自己理解的想法)简单叙述一下qq程序执行过程:1. 运行前qq.exe一开始在硬盘上,是一堆二进制代码,没有任何作用(程序只有进入了内存才能运行,进入内存后,需要服从操作系统的调度),在程序运行前,操作系统会进行程序的装载,也就是创建一个进程结构2. 运行...原创 2020-05-06 23:57:00 · 260 阅读 · 0 评论 -
【并发编程笔记】 ---- 深入分析Synchronized以及锁升级案例
文章目录1. 实现原理2. Monitor3. 锁的优化4. 锁的升级5. 1. 实现原理Synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性Synchronized作用范围普通同步方法,锁是当前实例对象静态同步方法,锁是当前类的class对象Class的相关数据存储在永久戴PermGen(jd...原创 2020-05-06 15:23:36 · 436 阅读 · 1 评论 -
【并发编程笔记】 ---- CAS深入分析
文章目录1. 什么是CAS2. AtomicInteger3. CAS缺陷4. ABA问题及解决方案1. 什么是CASCAS是Compare and swap的缩写,即比较交换。由JDK提供的非阻塞原子性操作,它通过硬件保证了比较更新操作的原子性。CAS算法过程: 它包含3个参数 CAS(V,A,B)V: 表示要更新的变量(内存值)A: 表示预期值(旧的)B: 表示要更新的值...原创 2020-05-05 14:57:59 · 343 阅读 · 0 评论 -
【并发编程笔记】 ---- 锁的概述
文章目录1. 乐观锁与悲观锁2. 公平锁与非公平锁3. 独占锁与共享锁4. 可重入锁5. 自旋锁1. 乐观锁与悲观锁悲观锁: 指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改,所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处于锁定状态。悲观锁的实现往往依靠数据库提供的锁机制,即在数据库中,在对数据记录操作前给记录加排它锁乐观锁: 是相对悲...原创 2020-05-02 00:06:51 · 242 阅读 · 0 评论 -
【并发编程笔记】 ---- 基础(二)
文章目录1.1 多线程并发编程1.2 线程安全问题1.3 共享变量内存可见性问题1.4 synchronized关键字1.5 volatile关键字1.6 CAS操作1.7 Unsafe类1.8 伪共享1.1 多线程并发编程并发: 指同一时间段内多个任务同时都在执行并且都没有执行结束,强调一个时间段内同时执行,并发的多个任务在单位时间内不一定同时在执行。并行:指在单位时间内...原创 2020-05-01 20:45:57 · 117 阅读 · 0 评论 -
【并发编程笔记】 ---- 基础(一)
文章目录1.1 什么是线程1.2 线程创建与运行1.3 1.4 1.5 1.1 什么是线程线程是进程的一个实体,线程不会独立存在。进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。线程是CPU分配的基本单位在Java中,启动main函数就启动了一个JVM进程,main函数...原创 2020-04-30 23:39:29 · 171 阅读 · 0 评论