<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>学习档案</title><link>https://notes.ian2000.xyz/</link><description>学习路线与整理过的技术笔记</description><language>zh-CN</language><item><title>Fork/Join - ForkJoinTask</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/fork-join-forkjointask/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/fork-join-forkjointask/</guid><description>Fork/Join框架是Java 7引入的一个强大的并行处理框架，专为可以递归分解的问题设计。在这个框架中，ForkJoinTask是核心组件，它提供了支持分治算法的任务抽象。</description></item><item><title>Java Lock 深度解析</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/java-lock-%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/java-lock-%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/</guid><description>在 Java 并发编程里，synchronized 关键字是我们最早接触也最常用的同步机制。它简单易用，能解决大部分场景下的线程安全问题。然而，随着业务场景的复杂化和对性能、灵活性的更高要求，synchronized 的局限性也逐渐显现。此时，java.util.concurrent.lock...</description></item><item><title>Java 线程中断机制详解</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/java-%E7%BA%BF%E7%A8%8B%E4%B8%AD%E6%96%AD%E6%9C%BA%E5%88%B6%E8%AF%A6%E8%A7%A3/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/java-%E7%BA%BF%E7%A8%8B%E4%B8%AD%E6%96%AD%E6%9C%BA%E5%88%B6%E8%AF%A6%E8%A7%A3/</guid><description>在并发编程中，我们经常需要协调不同线程的执行。</description></item><item><title>JUC- CompletableFuture</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc-completablefuture/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc-completablefuture/</guid><description>Java 从早期就提供了 Thread 和 Runnable 来支持并发，后来引入了 ExecutorService 和 Future 来简化线程管理和获取异步结果。然而，Future 接口本身存在一些局限性，例如 get() 方法的阻塞性、缺乏方便的回调机制以及组合多个任务能力的不足。</description></item><item><title>JUC-锁体系</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc-%E9%94%81%E4%BD%93%E7%B3%BB/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc-%E9%94%81%E4%BD%93%E7%B3%BB/</guid><description>Java并发锁机制可以理解为一个分层的知识体系：</description></item><item><title>JUC工具类-CountDownLatch</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-countdownlatch/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-countdownlatch/</guid><description>则是并发控制的重要武器。CountDownLatch 是 java.util.concurrent 包中最经典的同步器之一，它通过一个计数器让线程间实现灵活的协作机制。</description></item><item><title>JUC工具类-CyclicBarrier</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-cyclicbarrier/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-cyclicbarrier/</guid><description>在高并发程序设计中，实现多个线程之间的相互等待、协调推进是一项常见且具有挑战性的任务。</description></item><item><title>JUC工具类-Exchanger</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-exchanger/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-exchanger/</guid><description>Exchanger 是 java.util.concurrent 包中的一个同步工具类，用于两个线程之间的数据交换。它提供了一个同步点，当两个线程都到达该点时，它们就可以交换数据。</description></item><item><title>JUC工具类-Phaser</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-phaser/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-phaser/</guid><description>Phaser是java.util.concurrent包下的一个可重用的同步屏障（Synchronization Barrier）</description></item><item><title>JUC工具类-Semaphore</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-semaphore/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-semaphore/</guid><description>你正在管理一个停车场，这个停车场只有 10 个停车位。同一时间，可能有几十辆甚至上百辆车想要进入停车场。</description></item><item><title>JUC工具类-ThreadLocal</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-threadlocal/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B7%A5%E5%85%B7%E7%B1%BB-threadlocal/</guid><description>多线程的世界里，线程安全是一个永恒的主题。</description></item><item><title>JUC并发集合-ConcurrentLinkedQueue</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B9%B6%E5%8F%91%E9%9B%86%E5%90%88-concurrentlinkedqueue/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B9%B6%E5%8F%91%E9%9B%86%E5%90%88-concurrentlinkedqueue/</guid><description>ConcurrentLinkedQueue是Java并发包(java.util.concurrent)中提供的一个线程安全的无界非阻塞队列，基于链表数据结构实现。它实现了Queue接口，遵循</description></item><item><title>JUC并发集合-ConcurrentSkipListMap</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B9%B6%E5%8F%91%E9%9B%86%E5%90%88-concurrentskiplistmap/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B9%B6%E5%8F%91%E9%9B%86%E5%90%88-concurrentskiplistmap/</guid><description>ConcurrentSkipListMap是Java并发包(java.util.concurrent)中提供的一个线程安全的有序映射表实现，基于跳表(Skip List)数据结构。它实现了ConcurrentNavigableMap接口，提供了丰富的有序操作和导航方法，同时保证了高并发环境下的...</description></item><item><title>Java Fork/Join 框架详解</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B9%B6%E5%8F%91%E9%9B%86%E5%90%88-java-fork-join/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E5%B9%B6%E5%8F%91%E9%9B%86%E5%90%88-java-fork-join/</guid><description>在多核处理器时代，充分利用计算资源已成为提升应用性能的关键因素。然而，编写高效的并行程序一直是软件开发中的难题。开发者不仅需要考虑如何合理拆分任务，还要处理线程同步、负载均衡等复杂问题。Java作为企业级应用的主流语言，在并发编程领域不断演进，而Fork/Join框架的引入则是这一演进过程中的...</description></item><item><title>JUC线程池- ForkJoinPool</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E7%BA%BF%E7%A8%8B%E6%B1%A0-forkjoinpool/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E7%BA%BF%E7%A8%8B%E6%B1%A0-forkjoinpool/</guid><description>在探讨 ForkJoinPool 之前，我们先思考一个问题：对于某些特定</description></item><item><title>JUC线程池-FutureTask</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E7%BA%BF%E7%A8%8B%E6%B1%A0-futuretask/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E7%BA%BF%E7%A8%8B%E6%B1%A0-futuretask/</guid><description>在现代软件开发中，尤其是后端服务开发，高并发和高性能是永恒的追求。为了充分利用多核处理器的能力，提升应用的响应速度和吞吐量，异步编程和</description></item><item><title>JUC线程池-ScheduledThreadPoolExecutor</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E7%BA%BF%E7%A8%8B%E6%B1%A0-scheduledthreadpoolexecutor/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E7%BA%BF%E7%A8%8B%E6%B1%A0-scheduledthreadpoolexecutor/</guid><description>在 Java 开发中，我们经常会遇到需要延迟执行或周期性执行任务的场景。比如：</description></item><item><title>JUC线程池-ThreadPoolExecutor</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E7%BA%BF%E7%A8%8B%E6%B1%A0-threadpoolexecutor/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E7%BA%BF%E7%A8%8B%E6%B1%A0-threadpoolexecutor/</guid><description>在探讨ThreadPoolExecutor的细节之前，我们首先要理解为什么在Java并发编程中，线程池扮演着如此重要的角色。</description></item><item><title>JUC集合-CopyOnWriteArrayList</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E9%9B%86%E5%90%88-copyonwritearraylist/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/juc%E9%9B%86%E5%90%88-copyonwritearraylist/</guid><description>在多线程编程成为常态的今天，如何安全、高效地处理共享数据是每个 Java 仔必须面对的课题。</description></item><item><title>LockSupport 深度解析</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/locksupport-%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/locksupport-%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/</guid><description>在 Java 的并发世界中，线程同步是保证数据一致性和程序正确性的核心。</description></item><item><title>并发容器（一）：普通容器&amp;&amp;同步容器&amp;&amp;并发容器</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E5%AE%B9%E5%99%A8-%E4%B8%80-%E6%99%AE%E9%80%9A%E5%AE%B9%E5%99%A8-and-%E5%90%8C%E6%AD%A5%E5%AE%B9%E5%99%A8-and-%E5%B9%B6%E5%8F%91%E5%AE%B9%E5%99%A8/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E5%AE%B9%E5%99%A8-%E4%B8%80-%E6%99%AE%E9%80%9A%E5%AE%B9%E5%99%A8-and-%E5%90%8C%E6%AD%A5%E5%AE%B9%E5%99%A8-and-%E5%B9%B6%E5%8F%91%E5%AE%B9%E5%99%A8/</guid><description>之前我们学习过了集合，并发编程，现在我们来学习并发容器，在并发编程中，经常听到Java集合类，同步容器，并发容器，那么他们之间有哪些分类，优劣呢，我们先把这个框架给分清楚了，这样后面学习的时候不会乱。</description></item><item><title>并发容器（二）：Concurrent类下的ConcurrentHashMap源码级解析</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E5%AE%B9%E5%99%A8-%E4%BA%8C-concurrent%E7%B1%BB%E4%B8%8B%E7%9A%84concurrenthashmap%E6%BA%90%E7%A0%81%E7%BA%A7%E8%A7%A3%E6%9E%90/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E5%AE%B9%E5%99%A8-%E4%BA%8C-concurrent%E7%B1%BB%E4%B8%8B%E7%9A%84concurrenthashmap%E6%BA%90%E7%A0%81%E7%BA%A7%E8%A7%A3%E6%9E%90/</guid><description>之前我们在集合篇里聊完了HashMap和HashTable，我们又学习了并发编程的基本内容，现在我们来聊一聊Concurrent类下的重要容器，ConcurrentHashMap。</description></item><item><title>并发编程-基础八股</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B-%E5%9F%BA%E7%A1%80%E5%85%AB%E8%82%A1/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B-%E5%9F%BA%E7%A1%80%E5%85%AB%E8%82%A1/</guid><description>现在的主机一般都是多个CPU,操作系统可以将多个线程分配给不同CPU执行,每个CPU执行一个线程,充分利用多核CPU的计算能力</description></item><item><title>并发编程JUC深度学习（一）进程与线程（文字描述部分）</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%B8%80-%E8%BF%9B%E7%A8%8B%E4%B8%8E%E7%BA%BF%E7%A8%8B-%E6%96%87%E5%AD%97%E6%8F%8F%E8%BF%B0%E9%83%A8%E5%88%86/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%B8%80-%E8%BF%9B%E7%A8%8B%E4%B8%8E%E7%BA%BF%E7%A8%8B-%E6%96%87%E5%AD%97%E6%8F%8F%E8%BF%B0%E9%83%A8%E5%88%86/</guid><description>新的专辑会深度总结并发编程的知识体系，力所能及地专精，同时也是我学习路上的一个总结，希望也能帮助有需要的人。</description></item><item><title>并发编程JUC深度学习(七）无锁（乐观锁）</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%B8%83-%E6%97%A0%E9%94%81-%E4%B9%90%E8%A7%82%E9%94%81/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%B8%83-%E6%97%A0%E9%94%81-%E4%B9%90%E8%A7%82%E9%94%81/</guid><description>乐观锁总是假设最好的情况，每次去拿数据的时候都认为数据不会被修改，所以不会上锁，只是在更新的时候会判断一下在这期间别人有没有去更新这个数据，主要是由版本号机制和CAS算法实现，这里我们主要介绍CAS算法实现。</description></item><item><title>并发编程JUC深度学习(三）共享模型之管程</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%B8%89-%E5%85%B1%E4%BA%AB%E6%A8%A1%E5%9E%8B%E4%B9%8B%E7%AE%A1%E7%A8%8B/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%B8%89-%E5%85%B1%E4%BA%AB%E6%A8%A1%E5%9E%8B%E4%B9%8B%E7%AE%A1%E7%A8%8B/</guid><description>本篇文章会介绍的内容不少，按需观看，全部了解会让你对锁的概念加深一层。</description></item><item><title>并发编程JUC深度学习(九）ReentrantLock源码解析</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%B9%9D-reentrantlock%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%B9%9D-reentrantlock%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/</guid><description>上一篇文章我们细说了AQS，如果我们搞明白了一些AQS，再来学习ReentrantLock就很容易了，相对来说简单了许多，核心还是AQS的那些东西，本篇我们敞开了聊聊ReentrantLock细节内容。</description></item><item><title>并发编程JUC深度学习(二）进程与线程（源码描述部分）</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%BA%8C-%E8%BF%9B%E7%A8%8B%E4%B8%8E%E7%BA%BF%E7%A8%8B-%E6%BA%90%E7%A0%81%E6%8F%8F%E8%BF%B0%E9%83%A8%E5%88%86/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%BA%8C-%E8%BF%9B%E7%A8%8B%E4%B8%8E%E7%BA%BF%E7%A8%8B-%E6%BA%90%E7%A0%81%E6%8F%8F%E8%BF%B0%E9%83%A8%E5%88%86/</guid><description>本文着重分析代码，理清里面的逻辑，我们主要分析Thread。</description></item><item><title>并发编程JUC深度学习(五）线程生命周期</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%BA%94-%E7%BA%BF%E7%A8%8B%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E4%BA%94-%E7%BA%BF%E7%A8%8B%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/</guid><description>在java领域，实现并发程序的主要手段就是多线程，那么知道线程的生命周期是很有必要的。</description></item><item><title>并发编程JUC深度学习(八）AbstractQueuedSynchronizer源码级解析</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E5%85%AB-abstractqueuedsynchronizer%E6%BA%90%E7%A0%81%E7%BA%A7%E8%A7%A3%E6%9E%90/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E5%85%AB-abstractqueuedsynchronizer%E6%BA%90%E7%A0%81%E7%BA%A7%E8%A7%A3%E6%9E%90/</guid><description>如果看完这篇aqs看不明白的话，可以关注一下我后面要出的ReentrantLock，Semaphore，countdownlatch这些文章，因为aqs直接去理解的话有一点难度，我刚开始学习的时候也挺蒙，后面结合着看一看，触类旁通就简单很多了。</description></item><item><title>并发编程JUC深度学习(六）内存模型_1</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E5%85%AD-%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B-1/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E5%85%AD-%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B-1/</guid><description>编写并发编程是非常困难的事情，并发程序的Bug往往是反常识的，很多错误诡异的出现又诡异的消失，让人抓狂。</description></item><item><title>并发编程JUC深度学习(六）内存模型_2</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E5%85%AD-%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B-2/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E5%85%AD-%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B-2/</guid><description>上一章我们了解到，在并发场景中，因为可见性，原子性，有序性导致的问题常常会违背我们的直觉，从而成为并发编程BUG之源。</description></item><item><title>并发编程JUC深度学习(十）Semaphore源码解析</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E5%8D%81-semaphore%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E5%8D%81-semaphore%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/</guid><description>一般我们使用锁的时候，在多线程下严格要求只能一个线程获取到锁，但是在某些场景下，我们需要有多个线程获取到锁，但是这个时候其实称之为资源最好。</description></item><item><title>并发编程JUC深度学习(四）共享模型之管程进阶学习</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E5%9B%9B-%E5%85%B1%E4%BA%AB%E6%A8%A1%E5%9E%8B%E4%B9%8B%E7%AE%A1%E7%A8%8B%E8%BF%9B%E9%98%B6%E5%AD%A6%E4%B9%A0/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8Bjuc%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-%E5%9B%9B-%E5%85%B1%E4%BA%AB%E6%A8%A1%E5%9E%8B%E4%B9%8B%E7%AE%A1%E7%A8%8B%E8%BF%9B%E9%98%B6%E5%AD%A6%E4%B9%A0/</guid><description>上一篇文章我们已经了解管程和锁的基本概念，这一章我们来更深入的了解他们的用处，还有一些扩展知识。</description></item><item><title>深入理解Condition接口</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3condition%E6%8E%A5%E5%8F%A3/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3condition%E6%8E%A5%E5%8F%A3/</guid><description>在多线程编程中，线程间的协作至关重要。我们经常遇到这样的场景：一个线程需要等待某个条件满足后才能继续执行，而这个条件的改变依赖于其他线程的操作。</description></item><item><title>深入学习 ReentrantReadWriteLock</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0reentrantreadwritelock/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0reentrantreadwritelock/</guid><description>在并发编程中，保护共享资源是核心问题之一。</description></item><item><title>缓存并发更新的挑战</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E7%BC%93%E5%AD%98%E5%B9%B6%E5%8F%91%E6%9B%B4%E6%96%B0%E7%9A%84%E6%8C%91%E6%88%98/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E7%BC%93%E5%AD%98%E5%B9%B6%E5%8F%91%E6%9B%B4%E6%96%B0%E7%9A%84%E6%8C%91%E6%88%98/</guid><description>在现代Web应用中，为了提升性能和用户体验，缓存（尤其是像Redis这样的内存数据库）的使用几乎无处不在。然而，当多个用户或进程同时尝试读取和修改同一份数据时，就会出现并发更新（Concurrent Updates）的问题。</description></item><item><title>阻塞队列-ArrayBlockingQueue</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E9%98%BB%E5%A1%9E%E9%98%9F%E5%88%97-arrayblockingqueue/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E9%98%BB%E5%A1%9E%E9%98%9F%E5%88%97-arrayblockingqueue/</guid><description>java.util.concurrent (JUC) 包提供了多种阻塞队列的实现，其中 ArrayBlockingQueue 以其有界、基于数组和线程安全的特性，在需要精确控制资源和流量的场景中扮演着重要角色。</description></item><item><title>阻塞队列-BlockingQueue</title><link>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E9%98%BB%E5%A1%9E%E9%98%9F%E5%88%97-blockingqueue/</link><guid>https://notes.ian2000.xyz/knowledge/java-backend/concurrency/%E9%98%BB%E5%A1%9E%E9%98%9F%E5%88%97-blockingqueue/</guid><description>想象一下现实生活中的流水线：上游工序不断生产零件（生产者），下游工序不断取用零件进行组装（消费者）。为了保证流水线顺畅运行，通常会在上下游之间设置一个传送带或缓冲区。这个缓冲区有几个关键作用：</description></item><item><title>Java 并发编程学习路线</title><link>https://notes.ian2000.xyz/learning-paths/java-concurrency/</link><guid>https://notes.ian2000.xyz/learning-paths/java-concurrency/</guid><description>从线程基础、内存模型到 AQS、并发容器、线程池与 Fork/Join，按前置关系串起站内全部 Java 并发笔记。</description></item><item><title>MySQL 学习路线</title><link>https://notes.ian2000.xyz/learning-paths/mysql/</link><guid>https://notes.ian2000.xyz/learning-paths/mysql/</guid><description>从存储结构、索引、SQL 执行到事务、锁和日志，按前置关系串起站内全部 MySQL 笔记。</description></item><item><title>Redis 学习路线</title><link>https://notes.ian2000.xyz/learning-paths/redis/</link><guid>https://notes.ian2000.xyz/learning-paths/redis/</guid><description>从数据结构和线程模型，到持久化、高可用、缓存问题与分布式锁，按前置关系串起站内全部 Redis 笔记。</description></item></channel></rss>