enyang
Categories
Java
Go
Algorithm
DataBase
Middleware
Message Queue
Tools
System Design
Web
AI
Cyber Security
LeetCode
Sundries
About
Login
Menu
Categories
Java
Go
Algorithm
DataBase
Middleware
Message Queue
Tools
System Design
Web
AI
Cyber Security
LeetCode
Sundries
About
enyang
Archives
2026 / 02
ZooKeeper<3>——同步原语与分布式锁
2026-02-01
Zookeeper
#Zookeeper
1 分布式同步问题概述 在分布式系统中,常见的同步问题: 互斥访问:多个进程同时访问共享资源时需要保证互斥。 任务协调(Barrier):多个进程必须同时达到某个条件才能继续执行。 顺序执行:保证任务按照严格的顺序处理。 Leader 选举:多个节点中选出唯一主节点负责协调。 ZooKeeper 提
2026 / 01
ZooKeeper<2>——数据模型与节点操作
2026-01-28
Zookeeper
#Zookeeper
1 数据模型概述 ZooKeeper 的核心是一个分布式协调服务,其数据存储方式类似轻量级的文件系统,但又有很强的分布式语义保证。 1.1 节点(ZNode)的基本概念 ZNode 是唯一的数据单元,每个 ZNode 在整个树中通过唯一的路径标识。 数据存储:ZNode 内部存储的是 byte[],
ZooKeeper<1>—— 基本概念与核心模型
2026-01-28
Zookeeper
#Zookeeper
1 协调问题 1.1 分布式系统的本质困难 分布式系统的复杂性并不来自业务逻辑,而是来自运行环境的不确定性。只要系统由多个独立进程组成,并通过网络进行通信,就天然失去了单机系统中的许多基本假设。 1.1.1 进程失败是常态 在分布式系统中,任何一个进程都可能在任意时间点失效。导致失效的原因非常多,包
Java 多线程<7>——线程池原理与参数设计
2026-01-18
Concurrency
#Concurrency
1 为什么不能随意创建线程 在并发程序的早期阶段,最常见的写法是直接创建线程: new Thread(() -> { // 执行任务 }).start(); 这种方式在功能上没有问题,但在工程层面存在严重隐患。 第一,线程创建和销毁成本高。线程不仅占用内存,还需要操作系统调度,频繁创建会严
Java 多线程<6>——并发容器与 CAS
2026-01-13
Concurrency
#Concurrency
1 为什么需要并发容器 在多线程程序中,共享数据结构几乎不可避免。最直观的做法,是在普通容器外层加锁: Map<String, Object> map = new HashMap<>(); synchronized (map) { map.put(key, value); } 这种方式在
Java 多线程<5>——Lock 体系与并发控制
2026-01-12
Concurrency
#Concurrency
1 synchronized 边界 在使用 synchronized 的过程中,开发者往往会逐渐遇到几个无法绕开的问题。 第一,线程在等待锁的过程中无法被中断。一旦线程进入 BLOCKED 状态,除非获得锁,否则无法响应中断信号,这在需要快速取消任务的系统中是不可接受的。 第二,无法限制等待时间。s
2025 / 12
正则表达式<1>——正则基础
2025-12-31
Java Basic
#Java
1. 正则表达式简介 1.1 什么是正则表达式 正则表达式(Regular Expression,简称 Regex)是一种用于 描述字符串模式的工具。不是简单的字符串匹配,而是用 规则和模式 来定义哪些字符串是“符合要求”的。 用途举例: 校验文本格式:手机号、邮箱、身份证、邮编等 搜索文本:文章关
SOLID 五大设计原则
2025-12-06
Software Engineering
#Software Engineering
SOLID 五原则用于指导面向对象设计,目标是让系统: 更易扩展(Extensible) 更易维护(Maintainable) 更易测试(Testable) 更松耦合(Loosely Coupled) 更清晰(Clean & Understandable) SOLID 包含五条原则: S — 单一职
Java 多线程<4>——锁机制与 synchronized
2025-12-06
Concurrency
#Concurrency
1 synchronized 的三种使用方式 synchronized 是 Java 最基础、最安全的同步方案,它使用 对象内置锁(Monitor Lock) 来保证多个线程访问临界区时的互斥性。 1.1 修饰实例方法 写法: public synchronized void m() { c
Java多线程<3>——线程安全与同步机制
2025-12-05
Concurrency
#Concurrency
1 线程安全与同步机制 线程安全是指在多线程环境下,多个线程对共享资源进行访问时,不会发生数据不一致或竞争条件的现象。为了保证线程安全,通常需要通过同步机制来控制对共享资源的访问,确保在任何时刻只有一个线程能访问该资源。 1.1 线程安全的定义 线程安全指的是在多线程并发执行的情况下,多个线程对同一
Previous
1 / 3
Next