java并发包里面的类一直是学习和面试的重点,这篇文章主要是对java并发包的其中一个类AtomicInteger的讲解。从为什么要出现AtomicInteger再到其底层原理来一个分析。 一、从a++说起为什么使用AtomicInteger 我们知道java并发机制中主要有三个特性需要我们去考虑, ...
分类:
编程语言 时间:
2020-05-23 00:29:22
阅读次数:
51
前言 ReentrantLock是JUC提供的可重入锁的实现,用法上几乎等同于Synchronized,但是ReentrantLock在功能的丰富性上要比Synchronized要强大。 一、ReentrantLock的使用 ReentrantLock实现了JUC中的Lock接口,Lock接口定义了 ...
分类:
编程语言 时间:
2020-05-21 00:08:55
阅读次数:
59
本文源自:https://www.cnblogs.com/Lee_xy_z/p/10470181.html CountDownLatch概念 CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 CountDownLatch能够 ...
分类:
其他好文 时间:
2020-05-18 00:43:23
阅读次数:
61
Java实现锁的方式主要有2种,一是synchronized,二是并发包java.util.concurrent中Lock接口的实现类ReentrantLock。需要知道的是前者是关键字,JVM原生的亲儿子来着的,后者是封装类,未来JVM改进肯定是先改进synchronized关键字。 1.vola ...
分类:
编程语言 时间:
2020-05-03 18:28:44
阅读次数:
78
两者简介: HashMap简介: HashMap是基于哈希表实现的,每一个元素是一个key(数据类型必须一致)-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下 ...
分类:
其他好文 时间:
2020-04-22 10:13:13
阅读次数:
67
1. 并发包中的ReentrantLock是偏向锁河轻量级锁码? 是的。 2. 偏向锁跟可重入性有什么区别,非偏向锁如何实现可重入? 偏向锁和可重入性直接没啥关系。。 当然要是锁不具备可重入性,那就无所谓偏向了。 可重入性是指比如一个线程获得了对象A上的锁,如果它第二次请求A的锁必然可以获得(也就是 ...
分类:
其他好文 时间:
2020-04-04 09:33:34
阅读次数:
318
Java锁系列教程之独占式锁 在Java并发编程中,锁是一个很重要的对象。Java中锁有两种:隐式锁和显式锁。使用synchronized关键字的锁是隐式锁。因为锁的申请和释放都是由JVM来维护的,不用我们来手动处理。使用Java并发包locks包下的锁,需要使用者手动申请和手动关闭。这种形式是显式 ...
分类:
编程语言 时间:
2020-04-03 13:38:46
阅读次数:
76
一、全称 AbstractQueueSynchronier 二、并发包的使用 ReentrantLock:new ReentrantLock()/lock()/unlock() ReentranReadWriteLock 可重入锁:对同一个对象可以多次加锁 三、底层 1.抽象同步队列三个核心组件:加 ...
分类:
其他好文 时间:
2020-04-02 12:02:12
阅读次数:
78
Copy On Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现 ...
分类:
其他好文 时间:
2020-03-31 23:08:14
阅读次数:
65
重入锁ReentrantLock[Re entrant Lock] 1. ReentrantLock与Synchronized区别: 1. 重入锁可以反复进入 2. 如果同一个线程多次获得锁,那么在释放锁的时候,也需要释放相同次数 3. 若释放锁的次数过多,将会得到 java.lang.Illega ...
分类:
其他好文 时间:
2020-03-31 21:15:52
阅读次数:
74