技术栈
并发编程
poemyang
5 天前
并发编程
·
disruptor
·
java并发编程
深入解析 Disruptor:从RingBuffer到缓存行填充的底层魔法
Disruptor,这一由英国金融巨头LMAX匠心打造的高性能并发框架,自诞生之初便肩负着在处理生产者-消费者问题时,追求极致吞吐量与超低延迟的使命。令人瞩目的是,LMAX公司凭借Disruptor框架,成功将订单处理速度飙升至每秒600万次交易(Transactions Per Second,TPS)的惊人水平,这一成就无疑彰显了Disruptor在并发处理领域的非凡实力。 然而,Disruptor的价值远不止于一个框架那么简单。它更是一种颠覆性的并发设计思想,为涉及并发、缓冲区管理、生产者-消费者模型
萧曵 丶
5 天前
java
·
多线程
·
并发编程
·
高级开发
CompletableFuture 实际场景使用案例
CompletableFuture 是 Java 8 引入的异步编程工具,实现了 Future 和 CompletionStage 接口。它提供了强大的异步编程能力,支持函数式编程风格,可以方便地组合多个异步操作。
萧曵 丶
5 天前
java
·
jvm
·
多线程
·
并发编程
CompletableFuture 底层原理详解
CompletableFuture 采用了 无锁(Lock-Free)并发设计,主要依靠以下机制:CAS(Compare-And-Swap):原子操作更新状态
poemyang
6 天前
并发编程
·
java并发编程
并发编程的三大基石:从底层逻辑聊透“同步、互斥与分工”
当单核性能的狂飙突进时代缓缓落幕,多核架构已成为算力增长的主旋律。然而,更多的核心并不天然等同于更强的性能。这就像将一条单行道拓宽为多车道高速公路,如果缺乏高效的交通调度系统,车辆(线程)间的抢道与拥堵(锁竞争)反而会造成更严重的瘫痪。 Java,作为企业级应用的中流砥柱,其并发设计的智慧恰在于此:它提供的不仅是一系列工具,更是一种从“暴力争抢”到“精巧协同”的思维跃迁。 本文将穿越这场并发设计的演进之旅,从Disruptor的无锁队列,到Fork/Join的分治思想,再到LongAdder的分散竞争与C
BestOrNothing_2015
11 天前
c++
·
多线程
·
并发编程
·
线程安全
·
内存模型
·
原子操作
·
数据竞争
C++ 并发四件套:并发编程 / 原子性 / 数据竞争 / 内存模型 (全解析)
目录一、并发编程:多个线程一起干活的世界1.1 并发编程的定义1.2 并发编程里我们要解决什么二、原子性:一个操作要么全做,要么不做
蜂蜜黄油呀土豆
12 天前
java
·
并发编程
·
内存泄漏
·
threadlocal
ThreadLocal 深度解析:它解决了什么、原理是什么、如何正确使用(含代码与实战建议)
ThreadLocal 是 Java 并发编程中一个非常实用但也容易被误用的工具。它看起来像“线程级别的全局变量”:你把一个对象放到 ThreadLocal 上,当前线程可以随时拿回自己的那份实例,不会与其他线程冲突。正因为方便,很多人用它来存放事务上下文、用户请求上下文、数据库连接或格式化器(SimpleDateFormat)等。但如果你不了解它的实现与陷阱(例如内存泄漏、与线程池配合问题),会埋下生产事故隐患。
逻极
15 天前
多线程
·
并发编程
·
异步io
Python并发实战:从线程混乱到优雅处理,我们如何将数据处理效率提升5倍
你可能想不到,一个简单的线程池配置错误,竟让我们的数据处理服务内存泄漏了整整48小时我们的数据同步服务在高峰期频繁崩溃,每天需要处理百万级用户行为数据,但原有的串行处理方式让数据延迟高达30分钟。业务团队不断投诉,用户行为分析报告总是"过时"的数据,转化率优化根本无从谈起。
better_liang
18 天前
java
·
性能优化
·
面试题
·
线程池
·
并发编程
每日Java面试场景题知识点之-线程池配置与优化
在一个高并发的电商系统中,用户下单、支付、库存管理等业务模块都需要异步处理大量任务。系统中初始配置的线程池采用默认参数,在促销活动期间出现以下问题:
后端小张
1 个月前
java
·
spring boot
·
spring
·
java-ee
·
并发编程
·
安全架构
·
juc
【JAVA 进阶】重生之我要学会 JUC 并发编程
在现代软件开发中,并发编程已经成为提升应用性能和用户体验的关键技术。随着多核处理器的普及和分布式系统的广泛应用,掌握并发编程技术变得越来越重要。Java作为企业级开发的主流语言,其并发编程能力的强弱直接影响着系统的性能表现。
切糕师学AI
2 个月前
c++
·
多线程
·
并发编程
·
阻塞等待
【多线程】阻塞等待(Blocking Wait)(以C++为例)
本文来自于我关于多线程的系列文章。欢迎阅读、点评与交流 1.【多线程】互斥锁(Mutex)是什么? 2.【多线程】临界区(Critical Section)是什么? 3.【多线程】计算机领域中的各种锁 4.【多线程】信号量(Semaphore)是什么? 5.【多线程】信号量(Semaphore)常见的应用场景 6.【多线程】条件变量(Condition Variable)是什么? 7.【多线程】监视器(Monitor)是什么? 8.【多线程】什么是原子操作(Atomic Operation)? 9.【多线
千码君2016
2 个月前
java
·
开发语言
·
学习
·
golang
·
gin
·
并发编程
·
编译语言
Go语言:记录一下Go语言系统学习的第一天
目录前言:1.下载2.粗略熟悉一下命令行3.简单分析程序包内容4.Go与安卓的关系5.依赖包下载网络代理的问题
poemyang
2 个月前
golang
·
并发编程
Goroutine间的“灵魂管道”:Channel如何实现数据同步与因果传递?
Channel是连接Goroutine的“管道”,是CSP理念在Golang中的具象化实现。它不仅是数据传递的队列,更是Goroutine间同步的天然工具,让开发者无需诉诸显式的锁或条件变量。
poemyang
2 个月前
golang
·
并发编程
“不要通过共享内存来通信”——深入理解Golang并发模型与CSP理论
Golang 在设计上另辟蹊径,其并发哲学的核心信条是:“不要通过共享内存来通信,而要通过通信来共享内存。” (Do not communicate by sharing memory; instead, share memory by communicating.) 这一理念源自通信顺序进程(Communicating Sequential Processes, CSP)理论。
gopyer
2 个月前
golang
·
go
·
游戏开发
·
并发编程
180课时吃透Go语言游戏后端开发11:Go语言中的并发编程
第11课我们来讲Go语言中的并发编程。在游戏开发里,并发编程可是个厉害的“武器”,它能让游戏同时做很多事情,就像游戏角色一边移动,一边播放技能特效,还能实时处理网络消息,这些都可以通过并发编程来实现。
23516
2 个月前
java
·
开发语言
·
jvm
·
分布式
·
后端
·
并发编程
·
原理
【并发编程】详解volatile
volatile是什么?它能解决什么问题?它的底层实现原理是什么?和synchronized有啥区别?哪些场景适合用volatile?
切糕师学AI
2 个月前
多线程
·
并发编程
【多线程】无锁数据结构(Lock-Free Data Structures)是什么?
本文来自于我关于多线程系列文章。欢迎阅读、点评与交流 1.【多线程】互斥锁(Mutex)是什么? 2.【多线程】临界区(Critical Section)是什么? 3.【多线程】计算机领域中的各种锁 4.【多线程】信号量(Semaphore)是什么? 5.【多线程】信号量(Semaphore)常见的应用场景 6.【多线程】条件变量(Condition Variable)是什么? 7.【多线程】监视器(Monitor)是什么? 8.【多线程】什么是原子操作(Atomic Operation)? 9.【多线程
切糕师学AI
2 个月前
cpu
·
并发编程
·
计算机体系结构
·
芯片技术
·
缓存锁
缓存锁(Cache Lock)是什么?
缓存锁 是现代处理器中为了提升性能,对传统的总线锁进行优化后的一种更精细的锁机制。缓存锁 是指CPU在执行原子操作时,不锁定整个系统总线,而是只锁定当前CPU核心的局部缓存行,并通过缓存一致性协议(如MESI)来保证操作原子性的一种机制。
hour_go
2 个月前
c++
·
并发编程
·
互斥锁
·
线程同步
·
原子操作
C++多线程编程入门实战
本文旨在帮助初学者快速理解和跑通C++多线程编程,涵盖从基础概念到实际应用的完整路径。在多核处理器成为主流的今天,多线程编程是提高程序性能的关键技术。它允许程序同时执行多个任务,充分利用硬件资源。
poemyang
3 个月前
多线程
·
并发编程
·
java并发编程
揭秘JUC:volatile与CAS,并发编程的两大基石
JUC(java.util.concurrent)并发包,作为Java语言并发编程的利器,由并发编程领域的泰斗道格·利(Doug Lea)精心打造。它提供了一系列高效、线程安全的工具类、接口及原子类,极大地简化了并发编程的开发流程与管理复杂度。
poemyang
3 个月前
java
·
并发编程
·
java并发编程
从MESA模型到锁升级:synchronized性能逆袭的底层逻辑
管程(Monitor)是一种用于管理共享资源访问的程序结构,能确保同一时刻只有一个线程访问共享资源,解决并发编程中的互斥和同步问题。MESA模型是管程的经典实现,主要由入口等待队列和条件变量等待队列构成。 1)入口等待队列:确保线程互斥,多个线程试图进入管程时,仅一个线程能成功,其余线程在入口等待队列中排队。 2)条件变量等待队列:解决线程同步问题,线程在管程内执行时,若条件不满足需等待其他线程操作结果,则进入相应条件变量的等待队列。 当线程被notify或notifyAll唤醒后,不会立即执行,而是