![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 76
王会举
技术改变世界
展开
-
并发编程:JUC下的同步实现之AQS理解
1:AQS是什么AQS:全称AbstractQueuedSynchronizer(抽象类的队列式同步器). 是JUC包下的一个抽象类. aqs因为是抽象类,本身并不提供同步的接口,但JUC下的其他同步组件都是基于aqs来进行实现同步的,比如(:ReentrantLock、CountDownLatch、Semaphore)这些都是继承自aqs.所以aqs在并发编程中是至关重要的知识点.2:实现AQS的类AQS支持线程抢占两种锁——独占锁和共享锁:实现独占锁的类:ReentrantLock、原创 2022-03-18 20:15:00 · 457 阅读 · 1 评论 -
并发编程:线程池ThreadPoolExecutor的理解
ThreadPoolExecutor是java.util.concurrent包下的线程池,继承ExecutorService类.《阿里巴巴Java开发手册》中强制线程池不允许使用 Executors 去创建,而是通过 new ThreadPoolExecutor 实例的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。原创 2022-03-11 17:11:44 · 533 阅读 · 0 评论 -
java中的锁---乐观锁与悲观锁的区别
锁,是开发中不得不掌握的一个知识点. 在面试中也会经常问到.其中乐观锁与悲观锁为最常见.首先介绍下两种锁1:乐观锁: 介绍:它的心态很好,每次别人使用它的时候,它会乐观的认为别人不修改数据,所以不加锁.极大的提高效率.适用于读比较多的场景 实现: 常用的实现方式为CAS算法:compare and swap(比较与交换) CAS实现是由三个操作数来完成的, 1:读取的变量值 M 2:旧的预期值A 3:新的修改值B (以下简称) ...原创 2020-09-09 15:43:32 · 4158 阅读 · 1 评论 -
并发编程:java中的锁ReentrantLock的理解
1:ReentrantLock的介绍ReentrantLock是java的并发包JUC下的一种锁机制.其继承了LOCK接口,功能与synchronized锁相似,由此经常会与synchronized锁进行对比.2:ReentrantLock与synchronized的区别相同点: 两者都是 独占锁, 都可重入不同点:1:synchronized是自动加锁,解锁,不需要代码进行控制,易于操作.ReentrantLock需要手动加锁解锁并且次数需要一致,不易操作.2:synchroniz原创 2022-03-09 20:12:05 · 379 阅读 · 0 评论 -
并发编程: 线程八锁的情况示范
线程八锁即多线程的情况下由不同的调用方法或者限制来判断不同的执行结果.下面进行一一演示示例1:这个例子的执行结果是 1,2 或者2,1,因为调用方法的时候 用了synchronized关键字,所以两个线程是互斥的,就看cpu先分配给线程a还是b了示例2: 结果和实例1的结果一样,但有不同的地方就是,线程里面有休眠时间,两则是互斥的,所有执行a的时候会等待1秒才执行2示例3:这个示例多了一个方法c 但是没有用synchronized来进行锁操作, 所以方法c在与 a,b 两个之间是并行的, .原创 2022-03-06 18:45:43 · 270 阅读 · 0 评论 -
并发编程- java中的锁:Synchronized的四种状态(无锁、偏向锁、轻量级锁、重量级锁)
Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文介绍的是Synchronized的四种锁状态.1:什么是Synchronized?Synchronized是java中的关键字,是一种同步锁。它修饰的对象有以下几种:(类, 方法, 代码块)synchronized可以保证方法或代码块在运行时,同一时刻只有一个线程可以进入到临界区(互斥性)所以它也是排它锁,同时它还保证了共享变量的内存可见性。在JDK1.6版本之前一直被称为''重量级锁'',但是在原创 2020-09-24 13:37:20 · 4390 阅读 · 0 评论 -
并发编程:java中线程的六种状态
学过计算机操作系统的都了解过线程由五种状态组成,分别为: 新建,就绪,运行,阻塞,死亡这五种状态。但java中线程的状态却有六种组成.通过Thread.java源码来看.原创 2022-03-01 15:21:50 · 1095 阅读 · 2 评论