编程术语中的同步与异步:从"等不等"到工程取舍
开篇:先拆掉那句最流行的话关于同步异步,流传最广的一句解释是"同步就是阻塞,异步就是非阻塞"。这句话不算全错,但它把两个不同层面的概念焊在了一起,是无数误解的起点。更准确的结论只有一句:同步和异步,描述的是调用方要不要原地等结果,以及结果通过什么方式回来。
从异步任务到并行计算,Future 的每一种用法我都踩过坑
搞 Java 后端八年,Future 是我最早接触的异步工具,也是让我踩坑最多的。有人把它当成“万能异步解药”,有人写 future.get() 从不设超时,还有人用单线程池去做并行计算——每一个坑我都用线上事故换过。今天把 Future 的所有用法和我的实战经验,一次性讲清楚。
Java Future 与 CompletableFuture 实战指南:从异步结果到任务编排
简介Future 和 CompletableFuture 都属于 Java 并发编程里的异步结果模型。
SQLServer迁移至KES SQLServer模式 问题整理
介质介质:使用兼容sqlserver模式的介质,官网第二个初始化实例./initdb -U system -x hDfghy7d*#4fhd -m sqlserver -D /data/Kingbase/ES/V8_NEW/data --lc-collate=zh_CN.
CPU 飙到 85% 但用户态只有一半?32% 系统 CPU 揭示了一个锁竞争真相
系列:线上问题实战录 | CPU 飙高类 · 第 10 篇 本文所有命令和输出均来自真实复现环境,可照步骤重现。Java 进程 PID 24589 占 368.7% CPU,但更重要的是 sy 占比远高于正常范围。
3小时日志分析,AI帮我找到Java线程问题
前段时间遇到一个比较隐蔽的线上问题。一个核心接口偶发超时。问题特点:不是每次出现;本地无法复现;CPU没有明显升高;内存没有异常;重启服务后暂时恢复。这类问题对于Java开发来说比较麻烦。因为它不像空指针、SQL错误一样,可以直接定位。
Java 并发编程进阶:从 Future 到 Fork/Join,打造高性能异步引擎
1. 引言:从“泡壶茶”看并发统筹艺术1.1 并发编程的本质著名数学家华罗庚先生在《统筹方法》中曾举过一个经典的例子:烧水泡茶。 如果按照串行思维,步骤是:洗水壶 -> 烧水 -> 洗茶壶 -> 洗茶杯 -> 拿茶叶 -> 泡茶。
定时任务执行间隔越来越大?问题可能出在线程池上
场景:每 5 秒执行一次的定时任务,实际间隔变成了 8 秒、15 秒、30 秒——越来越慢路径:检查执行时间 → 区分 fixedRate vs fixedDelay → 验证异常处理 → 监控线程池状态上篇讲了核心线程数设错导致吞吐下降,这篇我们来看线程池配置里一个更隐蔽的定时
Java创建线程的5种方式!面试必问+生产级场景全覆盖
在Java开发中,多线程是核心基础,也是面试高频考点、生产必备技能。很多开发者工作多年,依然说不清Java到底有几种创建线程的方式、每种方式的区别是什么、生产环境该如何选型。网上很多教程说法混乱:有的说4种、有的说6种,让新手越学越懵。
Future 的 get 阻塞怎么破,CompletableFuture 的编排我讲了三层
前年大促预热,我们一个聚合接口把整个应用拖死了。jstack 打出来,两百个 Tomcat 线程齐刷刷 WAITING,栈顶清一色 FutureTask.get。起因很朴素:下游风控服务抖了三十秒,我们串行 get 了三个 Future,一个超时没设。