并发编程

都说名字长不会被发现20 小时前
java·spring·线程池·并发编程
Spring 线程池最佳实践:如何优雅管理多线程任务在 Spring 项目中使用 @Async 注解可以实现方法的异步执行,提升系统吞吐量。然而,默认情况下 Spring 使用 SimpleAsyncTaskExecutor,它会为每个任务创建新线程,导致线程频繁创建销毁,开销巨大。更严重的是,所有异步任务共用一个线程池,无法实现资源隔离,一个任务出现问题可能影响整个系统。
庞轩px7 天前
java·jvm·面试·并发编程·mysql与redis·spring与消息队列·网络协议与设计模式
后端开发面试题总结本文专为Java后端面试求职者制作的面试经典题汇总,覆盖95%的高频面试题。以下的问题通过"问题 + 要点 + 回答"的格式展现,请通过文章目录快速找到对应问题。
Javatutouhouduan11 天前
并发编程·java面试·java面试题·后端开发·java编程·java程序员·java八股文
阿里Java面试核心讲(终极版)首次公开!程序员面试背八股,可以说是现在互联网开发岗招聘不可逆的形式了,其中最卷的当属Java!(网上动不动就是成千上百道的面试题总结)你要是都能啃下来,平时技术不是太差的话,面试基本上问题就不会太大。
庞轩px13 天前
java·并发编程·juc·aqs·reentrantlock
AQS(AbstractQueuedSynchronizer)源码深度解析:从CLH队列到ReentrantLock实现在Java并发编程的世界里,AQS(AbstractQueuedSynchronizer)是一个里程碑式的存在。它是java.util.concurrent包的基石,ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier等并发工具都是基于AQS构建的。
庞轩px13 天前
并发编程·synchronized·aqs··reentrantlock
Synchronized 与 ReentrantLock 深度对比在Java并发编程中,锁机制是保证线程安全的核心手段。synchronized 和 ReentrantLock 是两种最常用的锁实现,面试中经常被要求对比它们的区别。
我真会写代码16 天前
java·并发编程
深度解析ConcurrentHashMap:从底层原理到生产实战,搞定并发安全映射(含面试避坑)在Java并发编程、微服务架构与分布式系统中,哈希表是实现“键值对存储、快速查询”的核心数据结构,而ConcurrentHashMap作为HashMap的并发增强版,凭借“高并发、高安全、高性能”的核心优势,成为多线程环境下首选的映射容器——从缓存存储(本地缓存、分布式缓存辅助)、会话管理,到高并发接口的请求处理、线程间数据共享,ConcurrentHashMap几乎贯穿所有Java后端开发场景。
我真会写代码18 天前
java·并发编程·
深度解析并发编程锁升级:从偏向锁到重量级锁,底层原理+面试考点全拆解在Java并发编程中,synchronized的锁升级机制,是JVM对并发性能的极致优化,也是中高级面试的“必问重难点”。很多开发者只知道“锁会从偏向锁升级到轻量级锁,再到重量级锁”,却讲不清“为什么要升级”“升级的触发条件是什么”“底层如何实现”,一被追问就翻车。
一只大袋鼠22 天前
java·单例模式·并发编程
并发编程(二十三):单例模式(二):静态/非静态方法:单例内存优化关键单例模式的核心是保证一个类全局仅有一个实例,而实际开发中,我们不仅要实现单例,更要兼顾内存优化、线程安全与扩展性。并发编程(二十二):单例模式总览篇:概念、分类与基础实现-CSDN博客
一只大袋鼠22 天前
java·单例模式·并发编程
并发编程(二十四):单例模式(三):构造方法私有:单例模式的 “第一道防线”Java 中创建对象的核心方式:new XXX() → 本质是调用 XXX 的构造方法如果把构造方法设为 private:外部类(比如 Test 类)无法访问这个构造方法,自然就写不了 new ServletSingleton()
一只大袋鼠23 天前
java·spring·单例模式·并发编程
并发编程(二十二):单例模式:从基础实现到 Spring Web 实战单例模式是Java开发中最常用、面试最高频的设计模式之一,它看似简单,实则蕴含深厚的并发编程底层原理,并且在Spring、Servlet等主流框架中有着广泛的落地应用。
予枫的编程笔记24 天前
java·并发编程·hashmap·java面试·集合框架·jdk8·jdk7
【面试专栏|Java并发编程】ConcurrentHashMap并发原理详解:JDK7 vs JDK8 核心对比在Java并发编程中,ConcurrentHashMap绝对是“明星组件”——它解决了HashMap线程不安全、Hashtable效率低下的痛点,是多线程环境下操作键值对的首选。但很多开发者只知其然,不知其所以然,尤其JDK7与JDK8中它的底层实现发生了翻天覆地的变化,这也是面试中高频追问的核心考点。本文就带你从底层原理出发,拆解ConcurrentHashMap的并发逻辑,对比JDK7与JDK8的核心差异,帮你吃透面试重点。
予枫的编程笔记25 天前
java·并发编程·java面试·java并发·aba问题·cas原理·面试干货
【面试专栏|Java并发编程】CAS 核心原理,优缺点,ABA问题与解决方案家人们谁懂啊!Java并发面试里,CAS绝对是“常驻嘉宾”,不管是初级还是中级面试官,必问一句“你说说CAS的核心原理”。很多人只记个“比较并交换”的表面,被追问ABA问题、优缺点时直接卡壳。今天就从底层原理、代码实战、面试追问三个维度,把CAS讲透,让你下次面试遇到它,能侃侃而谈!
予枫的编程笔记25 天前
java·并发编程·java并发·面试干货·java原子类·atomicinteger·longadder
【面试专栏|Java并发编程】Java 原子类全解:AtomicInteger、LongAdder 原理与适用场景家人们谁懂啊!Java并发面试里,原子类绝对是“常客”,尤其是AtomicInteger和LongAdder,面试官必问“两者有啥区别”“什么时候用哪个”。很多人只会用AtomicInteger,对LongAdder一知半解,被追问原理直接卡壳。今天就接地气拆解,从底层原理、实战用法到适用场景,再加上面试追问,帮你彻底吃透这两个核心原子类!
C++chaofan1 个月前
java·享元模式·并发编程·连接池·juc·不可变对象
JUC 并发编程:不可变对象、享元模式与自定义连接池 学习笔记不可变对象是并发编程中线程安全的 “最优解”,无需任何同步手段即可保证多线程下的安全性,JUC 中诸多并发组件(如ConcurrentHashMap的键)均依赖不可变对象特性。
一只大袋鼠1 个月前
java·开发语言·多线程·并发编程
并发编程(三):线程快照统计・grep+awk+sort+uniq 实战详解上一篇咱们讲了 jstack dump 线程快照,其中最关键的一步就是用「grep+awk+sort+uniq -c」这串 指令,快速统计线程状态分布,避开了手动翻几百行快照的麻烦。
MR_Promethus2 个月前
c++·条件变量·并发编程
【C++11】condition_variable 条件变量应用背景:在多线程程序中,我们经常遇到这样的场景:线程 A 需要等待某个条件成立(比如缓冲区非空),才能继续执行;而这个条件是由线程 B 在未来某个时刻设置的。
Byte不洛2 个月前
linux·多线程·并发编程·生产者消费者模型·posix信号量
POSIX 信号量:基于环形队列的生产者消费者模型POSIX信号量和SystemV信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源目的。但是SystemV信号量是早期的UNIX进程间通信的机制,偏内核,适合多进程,而POSIX信号量是POSIX 标准定义的轻量级同步原语,简单直观,适合多线程编程。
Byte不洛2 个月前
linux·多线程·并发编程·pthread·生产者消费者模型
Linux 多线程:生产者消费者模型、阻塞队列与条件变量详解生产者消费者模式就是通过一个容器来解决生产者和消费者强耦合的问题。生产者和消费者彼此之间不直接通信,而是通过阻塞队列来进行通信,所以生产者生产完数据不同等待消费者处理,直接仍给阻塞队列,消费者不找生产者要数据,而是从阻塞队列中取,阻塞队列就相当于一个缓冲区,平和消费者和生产者的处理能力,这个阻塞队列就是用来给生产者和消费者解耦的。
Java后端的Ai之路3 个月前
java·开发语言·并发编程
【Java教程】- 并发编程核心知识解读并发编程就像烹饪:你得知道什么时候加料(线程),什么时候搅拌(同步),不然就会烧锅(死锁)!本文用大白话+生活案例,带你轻松掌握Java并发那些事儿!
没有bug.的程序员3 个月前
java·性能优化·并发编程·源码分析·红黑树·hashmap·技术深度
HashMap 源码深度剖析:红黑树转换机制与高并发性能陷阱在 Java 程序员的职业生涯中,HashMap 像是一道永远绕不开的“必修课”。无论是初出茅庐的校招面试,还是架构级别的技术评审,它总是处于风暴的中心。有人说它是 Java 集合框架的皇冠,也有人说它是新手最容易掉进去的“性能陷阱”。