enyang

ZooKeeper<3>——同步原语与分布式锁

1 分布式同步问题概述 在分布式系统中,常见的同步问题: 互斥访问:多个进程同时访问共享资源时需要保证互斥。 任务协调(Barrier):多个进程必须同时达到某个条件才能继续执行。 顺序执行:保证任务按照严格的顺序处理。 Leader 选举:多个节点中选出唯一主节点负责协调。 ZooKeeper 提

enyang Published on 2026-02-01

ZooKeeper<2>——数据模型与节点操作

1 数据模型概述 ZooKeeper 的核心是一个分布式协调服务,其数据存储方式类似轻量级的文件系统,但又有很强的分布式语义保证。 1.1 节点(ZNode)的基本概念 ZNode 是唯一的数据单元,每个 ZNode 在整个树中通过唯一的路径标识。 数据存储:ZNode 内部存储的是 byte[],

enyang Published on 2026-01-28

ZooKeeper<1>—— 基本概念与核心模型

1 协调问题 1.1 分布式系统的本质困难 分布式系统的复杂性并不来自业务逻辑,而是来自运行环境的不确定性。只要系统由多个独立进程组成,并通过网络进行通信,就天然失去了单机系统中的许多基本假设。 1.1.1 进程失败是常态 在分布式系统中,任何一个进程都可能在任意时间点失效。导致失效的原因非常多,包

enyang Published on 2026-01-28

Java 多线程<7>——线程池原理与参数设计

1 为什么不能随意创建线程 在并发程序的早期阶段,最常见的写法是直接创建线程: new Thread(() -> { // 执行任务 }).start(); 这种方式在功能上没有问题,但在工程层面存在严重隐患。 第一,线程创建和销毁成本高。线程不仅占用内存,还需要操作系统调度,频繁创建会严

enyang Published on 2026-01-18

Java 多线程<6>——并发容器与 CAS

1 为什么需要并发容器 在多线程程序中,共享数据结构几乎不可避免。最直观的做法,是在普通容器外层加锁: Map<String, Object> map = new HashMap<>(); synchronized (map) { map.put(key, value); } 这种方式在

enyang Published on 2026-01-13

Java 多线程<5>——Lock 体系与并发控制

1 synchronized 边界 在使用 synchronized 的过程中,开发者往往会逐渐遇到几个无法绕开的问题。 第一,线程在等待锁的过程中无法被中断。一旦线程进入 BLOCKED 状态,除非获得锁,否则无法响应中断信号,这在需要快速取消任务的系统中是不可接受的。 第二,无法限制等待时间。s

enyang Published on 2026-01-12

正则表达式<1>——正则基础

1. 正则表达式简介 1.1 什么是正则表达式 正则表达式(Regular Expression,简称 Regex)是一种用于 描述字符串模式的工具。不是简单的字符串匹配,而是用 规则和模式 来定义哪些字符串是“符合要求”的。 用途举例: 校验文本格式:手机号、邮箱、身份证、邮编等 搜索文本:文章关

enyang Published on 2025-12-31

SOLID 五大设计原则

SOLID 五原则用于指导面向对象设计,目标是让系统: 更易扩展(Extensible) 更易维护(Maintainable) 更易测试(Testable) 更松耦合(Loosely Coupled) 更清晰(Clean & Understandable) SOLID 包含五条原则: S — 单一职

enyang Published on 2025-12-06

Java 多线程<4>——锁机制与 synchronized

1 synchronized 的三种使用方式 synchronized 是 Java 最基础、最安全的同步方案,它使用 对象内置锁(Monitor Lock) 来保证多个线程访问临界区时的互斥性。 1.1 修饰实例方法 写法: public synchronized void m() { c

enyang Published on 2025-12-06

Java多线程<3>——线程安全与同步机制

1 线程安全与同步机制 线程安全是指在多线程环境下,多个线程对共享资源进行访问时,不会发生数据不一致或竞争条件的现象。为了保证线程安全,通常需要通过同步机制来控制对共享资源的访问,确保在任何时刻只有一个线程能访问该资源。 1.1 线程安全的定义 线程安全指的是在多线程并发执行的情况下,多个线程对同一

enyang Published on 2025-12-05
Previous Next