![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
文章平均质量分 92
cc_奋斗ing
这个作者很懒,什么都没留下…
展开
-
Fork/Join框架阅读笔记
什么是Fork/Join框架 Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干 个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解一下Fork/Join框架。Fork就是把一个大任务切分 为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结 果。比如计算1+2+…+10000,可以分割成10个子任务,每个子任务分别对1000个数进行求和, 最终汇总这10个子任务的结果。Fork/原创 2021-04-25 11:40:21 · 72 阅读 · 0 评论 -
java线程池
复习一下线程池,线程池技术是为了合理管理线程资源而提出的一种技术,这篇文章写的感觉不错,摘出来了线程池技术中的内容,又加上java并发中的内容谈谈我的理解 在一个应用程序中,我们需要多次使用线程,也就意味着,我们需要多次创建并销毁线程。而创建并销毁线程的过程势必会消耗内存。而在Java中,内存资源是及其宝贵的,所以,我们就提出了线程池的概念。 线程池:Java中开辟出了一种管理线程的概念,这个概念叫做线程池,从概念以及应用场景中,我们可以看出,线程池的好处,就是可以方便的管理线程,也可以减少内存的消耗。 那原创 2021-04-23 16:45:10 · 89 阅读 · 0 评论 -
Java并发之AQS详解
今天学了学并发AQS机制,是抽象队列同步器,用户主要通过继承AQS类,来实现自定义锁,从而完成特定功能,AQS提供了两种锁(1)共享锁(2)排他锁。 下面这个博客介绍的AQS机制挺不错可以看看 原文链接 一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock转载 2021-04-23 10:14:36 · 83 阅读 · 0 评论 -
java 偏向锁、轻量级锁及重量级锁synchronized原理
今天简单了解了一下java轻量级锁和重量级锁以及偏向锁。看了看这篇文章觉得写的不错 原文链接 java 偏向锁、轻量级锁及重量级锁synchronized原理 Java对象头与Monitor java对象头是实现synchronized的锁对象的基础,synchronized使用的锁对象是存储在Java对象头里的。 对象头包含两部分:Mark Word 和 Class Metadata Address 其中Mark Word在默认情况下存储着对象的HashCode、分代年龄、锁标记位等以下是32位JVM的原创 2021-04-21 09:46:44 · 106 阅读 · 0 评论 -
为什么会有内存屏障
复习一下内存屏障主要解决指令重排和可见性,需要了解JMM架构 原文链接 为什么会有内存屏障 每个CPU都会有自己的缓存(有的甚至L1,L2,L3),缓存的目的就是为了提高性能,避免每次都要向内存取。但是这样的弊端也很明显:不能实时的和内存发生信息交换,分在不同CPU执行的不同线程对同一个变量的缓存值不同。 用volatile关键字修饰变量可以解决上述问题,那么volatile是如何做到这一点的呢?那就是内存屏障,内存屏障是硬件层的概念,不同的硬件平台实现内存屏障的手段并不是一样,java通过屏蔽这些差异,统转载 2021-04-19 18:07:19 · 110 阅读 · 0 评论 -
CAS算法的理解及应用
应用 原子操作类,例如AtomicInteger,AtomicBoolean … 适用于并发量较小,多cpu情况下; Java中有许多线程安全类,比如线程安全的集合类。从Java5开始,在java.util.concurrent包下提供了大量支持高效并发访问的集合接口和实现类。如:ConcurrentMap、ConcurrentLinkedQueue等线程安全集合。 引入问题 那么问题来了,这些线程安全类的底层是怎么保证线程安全的,你可能会想到是不是使用同步代码锁synchronized? 引入概念 这些线转载 2021-04-19 12:36:15 · 158 阅读 · 0 评论