并发编程

程序喵大人7 天前
开发语言·c++·并发编程·
【C++并发系列】第二章:锁解决了什么问题?博主介绍:程序喵大人在上一章中,我们分析了多线程并发执行自增操作时由于缺少同步导致的竞态条件:两个线程并发执行 counter++,因为底层的 load、add、store 三个步骤被操作系统的调度器交叉执行,最终导致部分更新丢失。面对这类由于并发引发的数据竞争问题,绝大多数开发者的首选方案往往非常一致,那就是直接使用互斥锁。
虎妞050015 天前
后端·go语言·并发编程·gmp·goroutine
Go 语言并发模型深度解析:GMP 与实战模式不要通过共享内存来通信,而应通过通信来共享内存。Go 通过 CSP 模型实现并发。每个 P 维护本地 G 队列,工作窃取机制让空闲 P 从其他 P 偷 G。
Java爱好狂.19 天前
java·高并发·并发编程·java面试·java面试题·java程序员·java八股文
Java高并发系统架构设计核心技术开源!现在Java面试,问的是越来越底层。作为一名合格的Java程序员不仅要能“上天”,还要能“入地”!上天是指高并发,缓存,大流量,大数据量,能在更高的层面解决问题,入地是指从JVM,OS,算法,线程,IO这块刨根究底,对底层知识都能知其然还要知其所以然。
月落归舟19 天前
并发编程·aqs
AQS独占模式源码详解全流程在上一篇文章里面只是提到了AQS的大致框架,这篇主要来根据源码来刨析整个拿锁、排队、等待、挂起、唤醒、释放流程;
逻极25 天前
java·jvm·并发编程·集合框架
Java 从入门到精通:核心原理、最佳实践与性能优化Java 自 1995 年诞生以来,凭借“一次编写,到处运行”的跨平台能力、自动内存管理(GC)以及丰富的生态,成为企业级应用、大数据、Android 开发等领域的基石。本文将从 JVM 底层原理、并发机制、内存模型、性能调优等维度,深入剖析 Java 的核心技术,并提供实战代码与最佳实践。
better_liang1 个月前
java·线程池·并发编程·juc·aqs·reentrantlock·concurrenthashmap
每日Java面试场景题知识点之-JUC并发编程核心原理与实战JUC(java.util.concurrent)是Java并发编程的核心工具包,自JDK5引入以来,经历了多次迭代优化,目前已成为Java企业级开发中处理并发场景的基石。JUC包主要包含以下几大核心模块:
Tsuki_tl1 个月前
java·后端·面试·多线程·并发编程·线程状态
【总结】Java的线程状态Java线程状态是一个枚举类型,即 Thread.State。如下图,打印输出所有的线程状态类型:输出结果:
长谷深风1111 个月前
java·并发编程·线程安全·java多线程·synchronized·锁升级
多线程并发实战:从原理到应用【个人八股】这里从多线程的角度来进行切入!首先在我的技术派项目当中,首页采用的多线程来并行加载不同的模块,这里强调的是多个线程并行的执行!那你有没有思考过如果多线程之间交替执行会怎么样呢?顺带的引出了下面的内容。
Thanks_ks1 个月前
java·redis·分布式锁·redisson·微服务架构·并发编程·高可用
分布式锁:Redis 与 Redisson 的工程实践与避坑指南在单机架构中,我们通常使用 synchronized 或 ReentrantLock 来控制多线程对共享资源的并发访问。然而,随着业务的演进,系统往往会不可避免地走向分布式架构。当多个服务实例同时尝试修改同一个共享资源(例如扣减库存、处理账户余额)时,单机的本地锁便失效了。此时,我们需要引入分布式锁来保证跨进程的数据一致性。
Chen--Xing1 个月前
python·多线程·并发编程
Python -- 并发编程在python中,无论CPU有多少个核,在Cpython解释器中都是假象,同一时间执行的线程只有一个线程,这是python开发时的设计缺陷,因此python中的线程是“含有水分的线程”。
青山师1 个月前
java·单例模式·面试·性能优化·并发编程
CompletableFuture深度解析:异步编程范式与源码实现文章标签: #java #并发编程 #异步 #CompletableFuture #源码分析 #函数式编程 #性能优化
Byron__2 个月前
java·面试·多线程·并发编程
Java并发核心面试知识点本文为自用复习笔记,核心用于梳理Java并发编程核心高频考点,方便后续快速回顾、巩固底层细节,规避面试易踩坑点,查漏补缺遗忘的基础原理。
Thanks_ks2 个月前
java·多线程·并发编程·底层原理·写时复制·copyonwrite·性能优
透过 Copy-On-Write 机制:理解并发编程中的性能与一致性权衡在多线程编程的广阔领域中,读写冲突是最经典且令人头疼的问题之一。通常我们的第一反应是使用互斥锁,或者更进一步,使用 Java 等语言提供的读写锁(如 ReentrantReadWriteLock)。读写锁虽然在一定程度上分离了读和写,但在写操作发生时,所有的读操作依然会被强制阻塞。在 “读多写少” 的极端场景下,这种阻塞带来的上下文切换开销是非常巨大的,甚至可能导致写线程由于抢不到锁而产生饥饿现象。
学会去珍惜2 个月前
正则表达式·编程语言·文件操作·并发编程·文本处理
c语言“或”符号Python文本处理教程大全本专题围绕“Python文本处理从入门到精通”,系统讲解字符串操作、正则表达式、文本清洗、分词处理及文件读写等核心技能。内容涵盖基础语法到高级应用,结合实战案例帮助读者快速提升数据处理能力,适合初学者与进阶开发者参考学习,助力高效完成各类文本处理任务。
同勉共进2 个月前
c++·arm·并发编程·x86·store·load·rmw
并发编程系列(二)—— store, load 与 RMW注意,store buffer 不是缓存,它属于 CPU 而不是缓存系统。现代高性能的超标量处理器几乎都配备了 Store Buffer,可能叫法不同,但都有类似的“东西”和机制。
一叶飘零_sweeeet2 个月前
java·并发编程
深入拆解 Fork/Join 框架:核心原理、分治模型与参数调优实战在Java并发编程的演进历程中,JDK 7引入的Fork/Join框架是一个里程碑式的创新。它专为并行计算设计,基于分治思想,通过“工作窃取”算法实现高效的任务调度,能够充分利用多核CPU的计算能力。
oldmao_20002 个月前
开发语言·c++·多线程编程·并发编程
第八章 设计并发代码数据被划分给不同的线程,每个线程独立地处理其分配到的数据块,直到完成处理,而不需要与其他线程进行通信。 就像把一大块蛋糕切成几份,每人吃自己的那份,最后把吃完的盘子摞在一起。 技术本质:静态任务划分(Static Partitioning) —— 在程序开始执行前,就将数据集预先分割成若干连续的数据块,每个线程负责处理一个数据块。例如下图:在线程之间分配连续的数据块
一叶飘零_sweeeet2 个月前
java·cas·并发编程
深入拆解 Java CAS:从底层原理到 ABA 问题实战在Java并发编程的世界里,锁是保证线程安全的常用手段,但独占锁的性能开销往往成为高并发场景的瓶颈。CAS(Compare-And-Swap,比较并交换)作为一种无锁并发算法,通过硬件级别的原子操作实现了线程安全,成为Java并发包(java.util.concurrent)的基石。本文将深入拆解CAS的底层原理,剖析ABA问题的产生与解决方案,并详解Unsafe类在CAS中的核心作用。
一叶飘零_sweeeet2 个月前
java·并发编程
ConcurrentHashMap 深度解析:从 JDK7 到 JDK8 的演进与并发安全保障在 Java 并发编程中,ConcurrentHashMap 是线程安全哈希表的核心实现,相比 Hashtable 的全表锁机制,它通过更细粒度的锁设计和数据结构优化,实现了更高的并发性能。
都说名字长不会被发现2 个月前
java·spring·线程池·并发编程
Spring 线程池最佳实践:如何优雅管理多线程任务在 Spring 项目中使用 @Async 注解可以实现方法的异步执行,提升系统吞吐量。然而,默认情况下 Spring 使用 SimpleAsyncTaskExecutor,它会为每个任务创建新线程,导致线程频繁创建销毁,开销巨大。更严重的是,所有异步任务共用一个线程池,无法实现资源隔离,一个任务出现问题可能影响整个系统。