Java并发 - 线程安全类探索 Java并发 - 线程安全类探索设计车辆追踪器,获取车辆位置和更新车辆位置信息(坐标x,y)展示显示化大屏 版本一 非线程安全车辆对象【不可变】(MutablePoint) 线程安全车辆容器 1234567891011121314// 非线程安全public class MutablePoint { public int x, y; public MutablePoint( 2025-12-01
Java并发 - 原子类 Java并发 - 原子类CAS 原子操作CAS(Compare and Swap)是一种并发算法,通常用于实现多线程环境下的同步操作,特别是在并发编程中实现无锁算法。CAS操作涉及三个参数:内存位置(V)、期望值(A)和新值(B)。操作的意义是:仅当V的值等于A时,才将V的值更新为B。整个操作是原子的,不会被其他线程中断。 下面是CAS的基本原理: 读取内存值(V): 线程首先读取共享变量的当前 2025-12-01
Java并发 - 阻塞队列详解 Java并发 - 阻塞队列详解1. 阻塞队列概述1.1 什么是阻塞队列阻塞队列(BlockingQueue)是Java并发包中的一个重要组件,它是一个支持两个附加操作的队列: 阻塞插入:当队列满时,插入元素的线程会被阻塞,直到队列不满 阻塞移除:当队列空时,获取元素的线程会被阻塞,直到队列不空 1.2 阻塞队列的核心价值1.2.1 解决的问题 生产者-消费者问题:自动协调生产者和消费者的速度差 2025-12-01 #JUC
Java并发 - AQS详解 Java并发 - AQS详解在Java并发编程中,我们经常听到AQS(AbstractQueuedSynchronizer)这个概念,它是Java中锁的核心之一。本文将深入介绍AQS,通过提出一系列问题,带你深入了解AQS的定义、实现、资源获取方式以及应用场景。 带着问题阅读 什么是AQS? 为什么它是锁核心? AQS是如何实现的? AQS定义了什么样的资源获取方式? 1. Abstrac 2025-12-01 #JUC
Java并发 - CountDownLatch详解 Java并发 - CountDownLatch详解 CountDownLatch是什么?CountDownLatch的作用? CountDownLatch适用于什么场景? 1. CountDownLatch介绍CountDownLatch 是 Java 中的一个同步工具类,它允许一个或多个线程等待其他线程完成操作。CountDownLatch 的主要思想是,一个线程等待其他线程完成一组操作,它在 2025-12-01 #JUC
Java并发 - CyclicBarrier详解 Java并发 - CyclicBarrier详解CyclicBarrier 是 Java 中的一个同步工具类,用于实现多个线程之间的同步点。它允许一组线程等待彼此到达某个共同点,然后继续执行后续任务。CyclicBarrier 的作用是在多个线程并行计算中,它们各自计算完成后等待其他线程,当所有线程都到达同一个同步点时,它们才能继续执行后续的任务。 1. 主要特点和用途同步点: CyclicBar 2025-12-01 #JUC
Java并发 - Final关键字 Java并发 - Final关键字1. final方法的基础使用1.1 final修饰变量在声明基本类型的变量时,我们可以使用final关键字使其成为常量。一旦赋值,这个值将无法再被修改。 12final int MAX_VALUE = 100;// MAX_VALUE = 200; // 重新给MAX_VALUE赋值时,编译错误,无法修改final变量 1.2 引用类型的final变量对于引用 2025-12-01 #JUC
Java并发 - Java对象详解 Java并发 - Java对象1. 对象的组成 Mark Word : 第一部分用于存储对象自身的运行时数据如哈希码( HashCode )、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部分数据的长度在32位和64位的虚拟机( 未开启压缩指针 )中分别为32bit和64bi。 类型指针:即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例。 实 2025-12-01 #JUC
Java并发 - LockSupport详解 Java并发 - LockSupport详解LockSupport是Java中用于实现线程阻塞和唤醒的工具类。它提供了一种基于线程的阻塞原语,能够在不需要持有锁的情况下实现线程的挂起和唤醒操作。 1. LockSupport是什么?LockSupport是Java并发包(java.util.concurrent)中的一个工具类,用于实现线程的阻塞和唤醒操作。与传统的使用synchronized关键 2025-12-01 #JUC
Java并发 - ReentrantLock锁 Java并发 - ReentrantLock锁 带着问题阅读1.什么是可重入锁?可重入锁解决什么问题?2.ReentrantLock的核心是AQS,它是怎么实现的?3.ReentrantLock中的公平锁和非公平锁? 1. ReentrantLock源码解析graph BT; B(Sync) --> A(AbstractQueuedSynchronizer) subgraph exten 2025-12-01 #JUC