Fork me on GitHub
上一页 1 2 3 4 5 6 ··· 12 下一页
摘要: 概述 看名称就知道,这是一个读写锁,看上去好像和ReentrantLock有点关系,其实和ReentrantLock没有啥关系,两个类之间不存在互相调用和继承的关系,既然有了ReentrantLock为啥还要搞一个ReentrantReadWriteLock,主要还是因为ReentrantLock一 阅读全文
posted @ 2020-09-09 09:46 猿起缘灭 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 概述 Thread是线程的意思,在Java中我们一般都说多线程,而没有提过多进程,而且大家都知道,java中的多线程是真正的多线程,可以使用多核并行处理,而像python的多线程就是伪多线程,只能说是并发处理,那大家有没有好奇,jvm虚拟机相对于操作系统来说是一个进程,如果一个进程只能占用一个cpu 阅读全文
posted @ 2020-09-07 21:27 猿起缘灭 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 本文承接上一篇文章:AQS-共享模式分析 概述 CountDownLatch是一个同步计数器,他允许一个或者多个线程在另外一组线程执行完成之前一直等待,基于AQS共享模式实现的,下面就先举一个简单例子,从例子入手分析CountDownLatch的原理。 例子 public class CountDo 阅读全文
posted @ 2020-09-05 00:15 猿起缘灭 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 本文承接上一篇:AQS-共享模式分析 概述 信号量Semaphore是一个控制访问多个共享资源的计数器,和CountDownLatch一样,本质上是一种共享锁。举个例子,还是生产者消费者的例子,假设缓冲区的大小是100,然后可以实现多个生产者和消费者同时进行工作,只要100个资源没有使用完,生产者就 阅读全文
posted @ 2020-09-04 23:08 猿起缘灭 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 本文承接上一篇文章:AQS-独占模式分析 概述 一般我们在使用锁的时候,是要求两个线程之间严格互斥的,即一次只能一个线程获取到锁,但是在有些场景下是可以一次有多个线程获取到锁,当然这个时候不叫锁,换了一种说法,叫做资源。比如生产者消费者模型,实际上我们是可以让多个生产者和消费者同时工作的,如果使用互 阅读全文
posted @ 2020-09-04 21:40 猿起缘灭 阅读(754) 评论(0) 推荐(0) 编辑
摘要: 概述 ReentrantLock是基于AQS独占模式实现的一种可重入锁,与synchronized不同的是,ReentrantLock提供了公平锁和非公平锁的选择。其本质是基于操作系统的管程实现的。本文就分析一下ReentrantLock的实现原理,由于AQS在AQS-独占模式分析已经介绍过,所以涉 阅读全文
posted @ 2020-09-04 18:16 猿起缘灭 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 概述 Condition的作用用一句话概括就是为了实现线程的等待(await)和唤醒(signal),多线程情况下为什么需要等待唤醒机制?原因是有些线程执行到某个阶段需要等待符合某个条件才可以继续执行,在之前学习操作系统的时候,有一个经典的场景就是在容量有限的缓冲区实现生产者消费者模型,如果缓冲区满 阅读全文
posted @ 2020-09-04 16:12 猿起缘灭 阅读(3308) 评论(0) 推荐(2) 编辑
摘要: 概述 AQS,全称为AbstractQueuedSynchronizer,位于java.util.concurrent.locks包下面,是我们常见的ReentrantLock、Semaphore、CountDownLatch、ThreadPoolExecutor这些处理并发的类的基础。AQS有两种 阅读全文
posted @ 2020-09-03 19:05 猿起缘灭 阅读(761) 评论(0) 推荐(1) 编辑
摘要: 概述 cas即(compare and swap),比较并交换,在java并发中使用非常广泛,无论是ReenterLock内部的AQS,还是各种Atomic开头的原子类,都是基于cas实现的,java8的ConcurrentHashMap也使用了cas + synchronized进行实现,本文就介 阅读全文
posted @ 2020-09-03 15:54 猿起缘灭 阅读(985) 评论(0) 推荐(0) 编辑
摘要: 概述 synchronized是面试最高频的问题,比较简单的问题就是synchronized用在静态方法和非静态方法上的区别,复杂的问题就牵涉到synchronized如何保证原子性、有序性、可见性,以及synchronized锁优化和锁升级过程等,本文就介绍一下以上问题的原理。本文不涉及源码,如果 阅读全文
posted @ 2020-09-02 12:18 猿起缘灭 阅读(396) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 12 下一页