高并发系统的七种武器:从理论到生产实践
🧩 并发与并行的哲学思辨
认知误区澄清
// 伪并发示例:单核CPU的线程切换
IntStream.range(0, 8).forEach(i ->
new Thread(() -> {
while(true) computeHash(i)
}).start()
);
// 真并行示例:多核CPU的并行流
ForkJoinPool.commonPool().submit(() ->
IntStream.range(0, 8).parallel().forEach(i -> computeHash(i))
);
并发编程四象限
单资源 | 多资源 | |
---|---|---|
单线程 | 顺序执行 | 有限状态机 |
多线程 | 锁机制 | Actor模型 |
🚨 分布式锁的十二道陷阱
典型错误案例
// 错误实现:非原子化操作
public boolean unsafeLock(String key) {
if (!redis.exists(key)) {
redis.set(key, "locked")