JUC
文章平均质量分 95
介绍并发编程下面的知识点。
汐 泠
这个作者很懒,什么都没留下…
展开
-
AQS详解
AQS 的全称为,翻译过来的意思就是抽象队列同步器。这个类在 java.util.concurrent.locks 包下面。AQS为Java的并发包提供了强大的同步支持。通过内置的FIFO队列来完成资源获取线程的排队工作,并且利用一个被volatile关键字修饰的int类型的变量state表示同步状态。AQS 为构建锁和同步器提供了一些通用功能的实现,许多同步类实现都依赖于它,如常用的ReentrantLock、Semaphore等。原创 2024-07-18 13:40:48 · 1817 阅读 · 0 评论 -
深入理解Synchronized的使用和实现原理
synchronized 同步语句块的实现使用的是 monitorenter 和 monitorexit 指令,其中 monitorenter 指令指向同步代码块的开始位置,monitorexit 指令则指明同步代码块的结束位置。synchronized 修饰方法并没有 monitorenter 指令和 monitorexit 指令,取得代之的确实是 ACC_SYNCHRONIZED 标识,该标识指明了该方法是一个同步方法,用来保证互斥访问。原创 2024-07-17 09:41:17 · 2261 阅读 · 0 评论 -
ReentrantLock详解
在Java的并发编程库中,ReentrantLock是一种非常重要的同步工具,它提供了一种比内置synchronized关键字更加灵活和可定制的锁定机制。在本文中,我们将详细讨论ReentrantLock的工作原理、特性以及如何使用它来解决多线程并发问题。ReentrantLock 实现了 Lock 接口,是一个可重入且独占式的锁,和 synchronized 关键字类似。不过,ReentrantLock 更灵活、更强大,增加了轮询、超时、中断、公平锁和非公平锁等高级功能。原创 2024-07-16 14:30:53 · 1062 阅读 · 0 评论 -
synchronized锁的升级流程
从理论到实操,详细介绍了锁的种类和底层升级流程,并通过代码进行验证,加深记忆。原创 2024-07-13 19:47:09 · 1580 阅读 · 0 评论 -
Java中自定义线程池
线程池(ThreadPool)是一种基于池化思想管理和使用线程的机制:它是将多个线程预先存储在一个“池子”内,当有任务出现时可以避免重新创建和销毁线程所带来性能开销,只需要从“池子”内取出相应的线程执行对应的任务即可。在Java中,池化思想主要体现在资源管理上,以提高程序的性能和资源的利用效率。池化技术允许预先创建和维护一组可重用的对象,这些对象可以在需要时被快速分配,使用后归还给池,而不是每次需要时都创建新对象,这样可以显著减少对象创建和销毁的开销。原创 2024-07-14 22:30:43 · 738 阅读 · 0 评论