后端问题 · 并发
我怎么看并发
并发不是「开越多越好」,而是:把共享资源的冲突和资源上限管住。
- Java:线程池有界;别在请求线程里做无界任务堆积
- Node:别堵事件循环
- Go:Goroutine 也要有退出与限流
- Python:I/O 可用 async;CPU 别迷信多线程
常见坑
| 现象 | 常见根因 | 处理方向 |
|---|---|---|
| 接口越来越慢 | 池满、队列堆积、下游超时未设 | 限流、超时、隔离池 |
| CPU 打满 | 死循环、频繁 GC、重计算 | 抓栈/剖析;拆任务 |
| 偶现数据错乱 | 共享可变状态无同步 | 加锁、改不可变、单线程消费 |
| 异步任务丢了 | 进程挂了、只在内存队列 | 落库/MQ;可恢复 |
我的默认策略
- 同步请求尽量短;重活进队列 + 状态机(AI 生成就是这个思路)
- 一切远程调用有超时
- 线程池/连接池参数写清楚,禁止无界
细题可对照就业指南里的并发章节。