并发编程

一叶飘零_sweeeet5 天前
java·并发编程
深入拆解 Fork/Join 框架:核心原理、分治模型与参数调优实战在Java并发编程的演进历程中,JDK 7引入的Fork/Join框架是一个里程碑式的创新。它专为并行计算设计,基于分治思想,通过“工作窃取”算法实现高效的任务调度,能够充分利用多核CPU的计算能力。
oldmao_200010 天前
开发语言·c++·多线程编程·并发编程
第八章 设计并发代码数据被划分给不同的线程,每个线程独立地处理其分配到的数据块,直到完成处理,而不需要与其他线程进行通信。 就像把一大块蛋糕切成几份,每人吃自己的那份,最后把吃完的盘子摞在一起。 技术本质:静态任务划分(Static Partitioning) —— 在程序开始执行前,就将数据集预先分割成若干连续的数据块,每个线程负责处理一个数据块。例如下图:在线程之间分配连续的数据块
一叶飘零_sweeeet12 天前
java·cas·并发编程
深入拆解 Java CAS:从底层原理到 ABA 问题实战在Java并发编程的世界里,锁是保证线程安全的常用手段,但独占锁的性能开销往往成为高并发场景的瓶颈。CAS(Compare-And-Swap,比较并交换)作为一种无锁并发算法,通过硬件级别的原子操作实现了线程安全,成为Java并发包(java.util.concurrent)的基石。本文将深入拆解CAS的底层原理,剖析ABA问题的产生与解决方案,并详解Unsafe类在CAS中的核心作用。
一叶飘零_sweeeet13 天前
java·并发编程
ConcurrentHashMap 深度解析:从 JDK7 到 JDK8 的演进与并发安全保障在 Java 并发编程中,ConcurrentHashMap 是线程安全哈希表的核心实现,相比 Hashtable 的全表锁机制,它通过更细粒度的锁设计和数据结构优化,实现了更高的并发性能。
都说名字长不会被发现15 天前
java·spring·线程池·并发编程
Spring 线程池最佳实践:如何优雅管理多线程任务在 Spring 项目中使用 @Async 注解可以实现方法的异步执行,提升系统吞吐量。然而,默认情况下 Spring 使用 SimpleAsyncTaskExecutor,它会为每个任务创建新线程,导致线程频繁创建销毁,开销巨大。更严重的是,所有异步任务共用一个线程池,无法实现资源隔离,一个任务出现问题可能影响整个系统。
庞轩px21 天前
java·jvm·面试·并发编程·mysql与redis·spring与消息队列·网络协议与设计模式
后端开发面试题总结本文专为Java后端面试求职者制作的面试经典题汇总,覆盖95%的高频面试题。以下的问题通过"问题 + 要点 + 回答"的格式展现,请通过文章目录快速找到对应问题。
Javatutouhouduan25 天前
并发编程·java面试·java面试题·后端开发·java编程·java程序员·java八股文
阿里Java面试核心讲(终极版)首次公开!程序员面试背八股,可以说是现在互联网开发岗招聘不可逆的形式了,其中最卷的当属Java!(网上动不动就是成千上百道的面试题总结)你要是都能啃下来,平时技术不是太差的话,面试基本上问题就不会太大。
庞轩px1 个月前
java·并发编程·juc·aqs·reentrantlock
AQS(AbstractQueuedSynchronizer)源码深度解析:从CLH队列到ReentrantLock实现在Java并发编程的世界里,AQS(AbstractQueuedSynchronizer)是一个里程碑式的存在。它是java.util.concurrent包的基石,ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier等并发工具都是基于AQS构建的。
庞轩px1 个月前
并发编程·synchronized·aqs··reentrantlock
Synchronized 与 ReentrantLock 深度对比在Java并发编程中,锁机制是保证线程安全的核心手段。synchronized 和 ReentrantLock 是两种最常用的锁实现,面试中经常被要求对比它们的区别。
我真会写代码1 个月前
java·并发编程
深度解析ConcurrentHashMap:从底层原理到生产实战,搞定并发安全映射(含面试避坑)在Java并发编程、微服务架构与分布式系统中,哈希表是实现“键值对存储、快速查询”的核心数据结构,而ConcurrentHashMap作为HashMap的并发增强版,凭借“高并发、高安全、高性能”的核心优势,成为多线程环境下首选的映射容器——从缓存存储(本地缓存、分布式缓存辅助)、会话管理,到高并发接口的请求处理、线程间数据共享,ConcurrentHashMap几乎贯穿所有Java后端开发场景。
我真会写代码1 个月前
java·并发编程·
深度解析并发编程锁升级:从偏向锁到重量级锁,底层原理+面试考点全拆解在Java并发编程中,synchronized的锁升级机制,是JVM对并发性能的极致优化,也是中高级面试的“必问重难点”。很多开发者只知道“锁会从偏向锁升级到轻量级锁,再到重量级锁”,却讲不清“为什么要升级”“升级的触发条件是什么”“底层如何实现”,一被追问就翻车。
一只大袋鼠1 个月前
java·单例模式·并发编程
并发编程(二十三):单例模式(二):静态/非静态方法:单例内存优化关键单例模式的核心是保证一个类全局仅有一个实例,而实际开发中,我们不仅要实现单例,更要兼顾内存优化、线程安全与扩展性。并发编程(二十二):单例模式总览篇:概念、分类与基础实现-CSDN博客
一只大袋鼠1 个月前
java·单例模式·并发编程
并发编程(二十四):单例模式(三):构造方法私有:单例模式的 “第一道防线”Java 中创建对象的核心方式:new XXX() → 本质是调用 XXX 的构造方法如果把构造方法设为 private:外部类(比如 Test 类)无法访问这个构造方法,自然就写不了 new ServletSingleton()
一只大袋鼠1 个月前
java·spring·单例模式·并发编程
并发编程(二十二):单例模式:从基础实现到 Spring Web 实战单例模式是Java开发中最常用、面试最高频的设计模式之一,它看似简单,实则蕴含深厚的并发编程底层原理,并且在Spring、Servlet等主流框架中有着广泛的落地应用。
予枫的编程笔记1 个月前
java·并发编程·hashmap·java面试·集合框架·jdk8·jdk7
【面试专栏|Java并发编程】ConcurrentHashMap并发原理详解:JDK7 vs JDK8 核心对比在Java并发编程中,ConcurrentHashMap绝对是“明星组件”——它解决了HashMap线程不安全、Hashtable效率低下的痛点,是多线程环境下操作键值对的首选。但很多开发者只知其然,不知其所以然,尤其JDK7与JDK8中它的底层实现发生了翻天覆地的变化,这也是面试中高频追问的核心考点。本文就带你从底层原理出发,拆解ConcurrentHashMap的并发逻辑,对比JDK7与JDK8的核心差异,帮你吃透面试重点。
予枫的编程笔记1 个月前
java·并发编程·java面试·java并发·aba问题·cas原理·面试干货
【面试专栏|Java并发编程】CAS 核心原理,优缺点,ABA问题与解决方案家人们谁懂啊!Java并发面试里,CAS绝对是“常驻嘉宾”,不管是初级还是中级面试官,必问一句“你说说CAS的核心原理”。很多人只记个“比较并交换”的表面,被追问ABA问题、优缺点时直接卡壳。今天就从底层原理、代码实战、面试追问三个维度,把CAS讲透,让你下次面试遇到它,能侃侃而谈!
予枫的编程笔记1 个月前
java·并发编程·java并发·面试干货·java原子类·atomicinteger·longadder
【面试专栏|Java并发编程】Java 原子类全解:AtomicInteger、LongAdder 原理与适用场景家人们谁懂啊!Java并发面试里,原子类绝对是“常客”,尤其是AtomicInteger和LongAdder,面试官必问“两者有啥区别”“什么时候用哪个”。很多人只会用AtomicInteger,对LongAdder一知半解,被追问原理直接卡壳。今天就接地气拆解,从底层原理、实战用法到适用场景,再加上面试追问,帮你彻底吃透这两个核心原子类!
C++chaofan1 个月前
java·享元模式·并发编程·连接池·juc·不可变对象
JUC 并发编程:不可变对象、享元模式与自定义连接池 学习笔记不可变对象是并发编程中线程安全的 “最优解”,无需任何同步手段即可保证多线程下的安全性,JUC 中诸多并发组件(如ConcurrentHashMap的键)均依赖不可变对象特性。
一只大袋鼠2 个月前
java·开发语言·多线程·并发编程
并发编程(三):线程快照统计・grep+awk+sort+uniq 实战详解上一篇咱们讲了 jstack dump 线程快照,其中最关键的一步就是用「grep+awk+sort+uniq -c」这串 指令,快速统计线程状态分布,避开了手动翻几百行快照的麻烦。
MR_Promethus2 个月前
c++·条件变量·并发编程
【C++11】condition_variable 条件变量应用背景:在多线程程序中,我们经常遇到这样的场景:线程 A 需要等待某个条件成立(比如缓冲区非空),才能继续执行;而这个条件是由线程 B 在未来某个时刻设置的。