简单了解Vue.nextTick 引言在日常开发中,理解前端框架处理数据和视图更新的机制是非常重要的,尤其是在处理复杂交互和动态内容时。本文通过一个具体的问题实例,探讨了Vue.js中的nextTick函数的重要性和应用。 2022-02-07 Vue Vue 前端
Java并发编程——线程池 引言在高并发环境下,线程创建与销毁的频繁切换会带来额外的开销。线程池通过对线程的复用、可控的队列和多种灵活的拒绝策略,让并发编程在性能、可维护性和扩展性上达到平衡。本文系统介绍了 Java 并发编程中的线程池概念和关键实现方式:从 ThreadPoolExecutor 核心原理到常见线程池类型的应用场景,再到 Fork/Join 框架、线程池管理与调优策略,全方位助力开发者编写更高效的并发程序。 2021-08-23 Java并发编程 JavaSE Java并发编程 线程池
Java并发编程——其他工具类补充 引言在 Java 并发编程中,JDK 除了提供锁、线程池、并发容器等常见核心内容,还包含了一些用于特殊场景的工具类,以满足多线程协同工作的多种需求。LockSupport、CyclicBarrier、Phaser 与 Exchanger 等便是其中典型代表。它们在底层同步机制上各有巧妙设计,在不同应用场景下能发挥巨大作用。本文将带你系统认识这些工具类的工作原理、使用场景与常见示例,为日后编写更高效 2021-08-19 Java并发编程 JavaSE Java并发编程 并发工具类
Java并发编程——Copy-On-Write 引言在高并发读场景下,如果读操作远多于写操作,传统的互斥锁可能成为瓶颈。Copy-On-Write(COW)机制旨在充分利用“读多写少”的特性:对数据结构的写操作时才进行复制,从而极大地降低读操作的竞争与锁开销。本文将从 COW 的原理、在 Java 中的具体实现(CopyOnWriteArrayList、CopyOnWriteArraySet)以及使用注意事项等方面展开,帮助你在特定场景下写出更 2021-08-17 Java并发编程 JavaSE Java并发编程 Copy-On-Write COW
Java并发编程——AQS 引言Java 并发包(java.util.concurrent)为开发者提供了种类丰富的同步工具与并发数据结构,极大简化了多线程编程的难度。其中,AQS(AbstractQueuedSynchronizer)作为核心框架,为各种锁与同步器提供了统一的基础。理解 AQS 的设计理念与工作机制,有助于深入掌握如 ReentrantLock、Semaphore、CountDownLatch、Blocki 2021-08-15 Java并发编程 JavaSE Java并发编程 AQS
Java并发编程——不可变设计 引言在多线程编程中,如何保证数据的一致性与安全性往往是一大挑战。不可变对象在这方面提供了一种极其简洁有效的思路:如果一个对象从创建到销毁都不能被修改,那么不同线程之间自然无需为它的读写发生竞争。本文将由浅入深地讲解不可变对象在 Java 中的定义及实现方式,并结合实际应用场景,说明它为何在高并发下能带来显著的安全与性能优势。 定义不可变对象是指一旦创建后,其内部状态(即成员变量)无法被修改的对象。 2021-08-11 Java并发编程 JavaSE Java并发编程 不可变设计
Java并发编程——无锁 引言在高并发应用中,传统的锁(synchronized、ReentrantLock 等)容易成为性能瓶颈,不仅会造成线程阻塞,也可能引入死锁、优先级反转等问题。无锁编程正是针对这一痛点而生,通过底层的原子操作(尤其是 CAS)实现线程安全,尽可能减少阻塞和上下文切换,使系统在多核环境下保持较高的可扩展性和吞吐量。 概述定义无锁编程是一种在多线程环境中实现线程安全的方法,它通过原子操作来保证数据一致 2021-08-09 Java并发编程 JavaSE Java并发编程 无锁
Java并发编程——Java内存模型 引言在多线程并发环境中,如何确保线程对共享数据的访问和修改是正确而一致的,是一个核心且复杂的问题。Java 内存模型(JMM) 就是为了解决这一问题而引入的抽象约定。本文将带你从 JMM 的基本概念出发,逐步理解并掌握 volatile 关键字的语义,以及 happens-before 规则对并发程序正确性的重大意义。 JMM 概述JMM,全称为 Java 内存模型(Java Memory Mod 2021-08-06 Java并发编程 JavaSE Java并发编程 Java内存模型
Java并发编程——管程Monitor 引言并发编程的本质是如何安全、高效地管理多个线程对共享资源的访问,而管程切好能够帮助我们在多线程环境中实现对共享资源的互斥访问与条件同步。Java 语言内建了管程机制,通过关键字 synchronized 以及 wait() / notify() 等方法,让开发者能够自然地在代码层面封装共享数据的访问方式、保护临界区,降低并发编程的复杂度。本篇文章将基于管程这一概念,深入探讨其在 JVM 层级的实 2021-08-05 Java并发编程 JavaSE Java并发编程 管程
Java并发编程——synchronized 引言并发编程的核心目标是让多个线程在同一程序中协作并行,提升整体执行效率,同时保证共享数据的正确性和一致性。在 Java 语言中,synchronized 关键字是实现线程同步最基础、最直观的方式之一。它可以保证同一时刻只有一个线程能执行被同步的代码(或方法),并在线程间建立起可见性保证,从而避免数据竞争和竞态条件。本篇文章将针对 synchronized 的使用场景、使用方式、底层原理及其对程序 2021-08-03 Java并发编程 JavaSE Java并发编程 synchronized