![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java#java.util.concurrent
see the future
这个作者很懒,什么都没留下…
展开
-
Java juc系列3 ——locks包(一)大型图文教程 AQS的源码,有手有眼就能看懂
Java JUC系列目录链接 Java juc系列3 ——locks包(一)AQS 学会用idea的debug功能,AQS的源码原来这么简单 看这篇文章的基础:会使用idea的debug功能。(包括step over、step into、force step into、切换线程和修改内存值) 会使用debug+看完=AQS源码真简单 废话不多说,直接上代码,这里我写了一个小demo用来debugAQS的源码(图中⭕代表断点): 没啥复杂的,就是三个线程,简单看一下先 import java.util.co原创 2020-07-20 10:56:07 · 276 阅读 · 0 评论 -
Java juc系列2 —— synchronized关键字
Java JUC系列目录链接 Java juc系列2 —— synchronized关键字JDK1.5后的synchronizedJava多线程 synchronized关键字的用法JAVA对象组成结构对象的多种锁状态锁的升级过程无锁—>偏向锁偏向锁—>轻量级锁轻量级锁 —>自旋锁(某种意义上这只是一种自旋的状态,并不叫锁)自旋锁—>重量级锁synchronized和Lock JDK1.5后的synchronized Java多线程 synchronized关键字的用法 我们都知道s原创 2020-07-16 17:50:13 · 215 阅读 · 0 评论 -
Java juc系列7 —— 线程安全
Java JUC系列目录链接 Java 线程池核心原理解析何为线程安全如何解决线程安全结语 何为线程安全 直接上个伪代码: boolean a = 多个线程共享变量; boolean b = 存在写操作; boolean c = 写操作导致数据冲突; if( a && b && c ) { 存在线程安全问题; } 文字描述就是,只有多个线程共享变量,线程存在写操作,操作导致数据冲突同时满足的情况下,才会存在线程安全问题。 如何解决线程安全 解决线程安全还不简单,不就是让原创 2020-07-13 11:00:50 · 199 阅读 · 0 评论 -
Java juc系列6 —— 线程池
Java JUC系列目录链接 Java juc系列6 —— 线程池Java线程池的基础用法创建和使用为什么需要线程池线程的生命周期[^1]新建就绪运行休眠终止使用线程的代价线程池帮我们做什么线程池原理 Java线程池的基础用法 在深入了解Java线程池之前,我们先来回顾一下线程池的基础用法。 创建和使用 想要创建一个线程池有两种方法(其实底层都用的同一种): 使用excutors的静态方法创建,比如ExecutorService singleThreadPool = Executors.newSingle原创 2020-06-16 09:49:21 · 245 阅读 · 0 评论 -
Java juc系列5 ——atomic
Java JUC系列目录链接 Java juc系列5 ——atomic续言ConditionCondition和ObjectCondition实现类源码分析 续言 上篇文章中说完了AQS和锁,还剩下几个点这里再做介绍。 Condition Condition据说是jdk1.6引入的(不重要了),用于替代Object的一种锁等待和通知机制。 Condition和Object 其实就是替代了原来的 object.wait(); object.notify(); object.notifyAll(); 更新为原创 2020-06-11 17:47:29 · 172 阅读 · 0 评论 -
Java juc系列4 ——locks包(二)
Java JUC系列目录链接 Java juc系列4 ——locks包(二)locks包简介AQSAQS中的主要成员变量AQS中的主要方法ReentrantLock公平队列同步器非公平队列同步器ReentrantReadWriteLock locks包简介 locks是java.util.concurrent包下的设计线程锁相关的包,今天我们来简单分析一些这个包下面的内容和他们的主要实现原理。 AQS 说到多线程自然会有锁机制,有锁机制自然就有占有锁线程和等待线程,而等待线程就会由我们的AQS(抽象队列同步原创 2020-06-11 15:25:20 · 548 阅读 · 0 评论 -
Java JUC并发包解析 [源码][计算机原理][小白慎入]
Java JUC系列[硬核] 系列目录 Java juc系列1 —— volatile关键字 Java juc系列2 —— synchronized关键字 Java juc系列3 ——locks包(一) Java juc系列3 ——locks包(二) (没链接的是还没做。。。)原创 2020-06-08 15:31:45 · 321 阅读 · 3 评论 -
Java juc系列1 —— volatile关键字
Java juc系列1 —— volatile关键字Java多线程 主存和工作内存概念JMM模型线程何时与主存发生交互指令重排什么是指令重排指令排序有多少种类[^2]什么情况下不会发生指令重排volatile关键字volatile如何保证数据的可见性volatile如何禁止指令的重排volatile来解决什么volatile带来的问题happen-before Java多线程 主存和工作内存概念 在了解volatile关键字之前,我们需要先了解一下Java多线程的一些底层原理。 JMM模型 在计算机中,我们原创 2020-06-04 15:18:52 · 352 阅读 · 2 评论