【原创】Java并发编程系列22|倒计时器CountDownLatch收录于话题#进阶架构师|并发编程专题12个点击上方“java进阶架构师”,选择右上角“置顶公众号”20大进阶架构专题每日送达并发编程中常遇到这种情况,一个线程需要等待另外多个线程执行后再执行。遇到这种情况你一般怎么做呢?今天就介绍一种JDk提供的解决方案来优雅的解决这一问题,那就是倒计时器CountDownLatch。本文将分以
分类:
编程语言 时间:
2020-11-24 12:54:33
阅读次数:
4
Java并发编程系列21|Condition-Lock的等待通知收录于话题#进阶架构师|并发编程专题12个点击上方“java进阶架构师”,选择右上角“置顶公众号”20大进阶架构专题每日送达我们知道synchronized锁通过Object类的wait()和notify()方法实现线程间的等待通知机制,而比synchronized更灵活Lock锁同样也有实现等待通知机制的方式,那就是条件Condit
分类:
编程语言 时间:
2020-11-24 12:53:18
阅读次数:
6
Java并发编程系列20|StampedLock源码解析收录于话题#进阶架构师|并发编程专题12个点击上方“java进阶架构师”,选择右上角“置顶公众号”20大进阶架构专题每日送达本文为何适原创并发编程系列第20篇,文末有本系列文章汇总。上一篇介绍了StampedLock存在的意义以及如何使用StampedLock,按照这个系列的风格大家也应该猜到了,这一篇就是StampedLock的源码分析。这
分类:
编程语言 时间:
2020-11-24 12:51:07
阅读次数:
8
【原创】Java并发编程系列18|读写锁(下)收录于话题#进阶架构师|并发编程专题12个本文为何适原创并发编程系列第18篇,文末有本系列文章汇总。通过以下几部分来分析Java提供的读写锁ReentrantReadWriteLock:为什么需要读写锁读写锁的使用DemoReentrantReadWriteLock类结构记录读写锁状态源码分析读锁的获取与释放源码分析写锁的获取与释放锁降级读写锁应用本文
分类:
编程语言 时间:
2020-11-24 12:50:51
阅读次数:
6
【原创】Java并发编程系列17|读写锁八讲(上)收录于话题#进阶架构师|并发编程专题12个点击上方“java进阶架构师”,选择右上角“置顶公众号”20大进阶架构专题每日送达写在前面本文为何适原创并发编程系列第17篇,文末有本系列文章汇总。通过以下几部分来分析Java提供的读写锁ReentrantReadWriteLock:为什么需要读写锁读写锁的使用DemoReentrantReadWriteL
分类:
编程语言 时间:
2020-11-24 12:50:31
阅读次数:
5
【原创】Java并发编程系列14|AQS源码分析收录于话题#进阶架构师|并发编程专题12个本文为何适原创并发编程系列第14篇,文末有本系列文章汇总。AbstractQueuedSynchronizer是Java并发包java.util.concurrent的核心基础组件,是实现Lock的基础。AQS实现了对同步状态的管理,以及对阻塞线程进行排队、等待通知等,本文将从源码角度深入理解AQS的实现原理
分类:
编程语言 时间:
2020-11-24 12:48:46
阅读次数:
6
【原创】Java并发编程系列13|LookSupport收录于话题#进阶架构师|并发编程专题12个本文为何适原创并发编程系列第13篇,文末有本系列文章汇总。java.util.concurrent中源码频繁使用的LockSupport来阻塞线程和唤醒线程,如AQS的底层实现用到LockSupport.park()方法和LockSupport.unpark()方法。LockSupport到底是什么?
分类:
编程语言 时间:
2020-11-24 12:48:32
阅读次数:
6
【原创】Java并发编程系列10|线程状态收录于话题#进阶架构师|并发编程专题12个点击上方“java进阶架构师”,选择右上角“置顶公众号”20大进阶架构专题每日送达Java并发编程脑图本文为何适原创并发编程系列第10篇,前面几篇没看过的,可以在文末找到前几篇的跳转链接。前面几篇理论知识介绍了一大堆,实际编程中线程应该怎么用呢?接下来就要开始介绍实际编程中如何操作线程,本文内容如下:如何创建并启动
分类:
编程语言 时间:
2020-11-24 12:47:48
阅读次数:
8
为什么要学习Java对象头 学习Java对象头主要是为了解synchronized底层原理,synchronized锁升级过程,Java并发编程等。 JAVA对象头 由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能,这 ...
分类:
编程语言 时间:
2020-11-11 15:48:11
阅读次数:
7
一、前言 二、synchronized局限性 + Lock锁机制的引入 2.1 synchronized局限性 第一,使用synchronized,其他线程只能等待直到持有锁的线程执行完释放锁(synchronized释放锁有且仅有两种情况) 如果一个代码块被synchronized修饰了,当一个线 ...
分类:
编程语言 时间:
2020-11-10 10:48:47
阅读次数:
9