![](https://img-blog.csdnimg.cn/20210706201418522.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java 学习
文章平均质量分 64
学习JAVA的语法知识
long Rookie
这个作者很懒,什么都没留下…
展开
-
ReentrantLock 公平锁和非公平锁加锁和解锁源码分析(简述)
- title: ReentrantLock 公平锁和非公平锁加锁和解锁源码分析(简述)- date: 2021/8/16文章目录一、ReentrantLock1. 构造函数二、ReentrantLock 公平锁的加锁(lock)过程1.1 调用ReentrantLock中的lock1.2 调用Sync中的抽象方法lock,具体实现由子类完成,这里是非公平锁1.3 调用NonfairSync中的 lock;1.3.1 acquire 方法:1.3.1.1 tryAcquire1.3.1.2 acqui原创 2021-08-17 01:37:33 · 205 阅读 · 0 评论 -
乐观锁 VS 悲观锁(简述)
- title: 乐观锁 VS 悲观锁- date: 2021/8/15文章目录1. 乐观锁 vs 悲观锁1. 乐观锁 vs 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有对此概念对应的实际应用;悲观锁:对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此无论共享的数据是否会出现竞争,它都会进行加锁(这里讨论的是概念模型,实际上虚拟机会优化掉很大一部分不必要的加锁(锁消除))。Java中,synchronized关原创 2021-08-15 17:33:00 · 160 阅读 · 0 评论 -
Java中CAS(Compare And Swap,比较和交换)算法的技术原理简述
- title: Java中CAS(Compare And Swap,比较和交换)算法的技术原理简述- date: 2021/8/14文章目录CAS全称 Compare And Swap,是一种无锁算法。在不使用锁(没有线程被阻塞)的情况下实现多线程之间的变量同步。java.util.concurrent包中的原子类就是通过CAS来实现了乐观锁。这里简要提一下乐观并发策略。实现线程安全的方法主要有三大手段:阻塞同步(也叫互斥同步),非阻塞同步(基于冲突检测的乐观并发策略)以及无同步方案;从原创 2021-08-15 02:43:50 · 669 阅读 · 0 评论 -
减少上下文切换和避免死锁简述
title: 减少上下文切换和避免死锁简述date: 2021/8/13线程有创建和上下文切换的开销;如何减少上下文切换?无锁并发编程。多线程竞争锁时,会引起上下文切换,所以多线程切换数据时,可以用一些办法来避免使用锁,如将数据的ID按照Hash算法取模分段,不同的线程处理不同段的数据。CAS算法。Java的Atomic包使用CAS算法来更新数据,而不需要加锁。使用最小线程。避免创建不需要的线程,比如任务很少,但是创建了很多线程来处理,这样会造成大量线程都处于等待状态。协程。在单线程原创 2021-08-13 16:36:19 · 149 阅读 · 0 评论 -
Java线程中断的理解(转载)
https://blog.csdn.net/qq_41512783/article/details/108943193?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-4&spm=1001.2101.3001.4242转载 2021-07-09 18:59:02 · 109 阅读 · 0 评论