Aaron Lau(韩栖)

并发时序 —— 难复现的 bug

Aaron Lau(韩栖)163 字 · 约 1 分钟

同一串操作,慢慢点没事,手快一点就出错。两个异步任务同时改同一份状态,谁先完成谁后完成,结果就不一样。「这几个都是典型的并发操作时序不对导致的 bug 嘛……所以你懂的」

这类问题在日志里往往只留下一个结果,没有中间顺序。加锁能解决一部分,锁多了又会卡住主线程。UI 状态、缓存写入、网络回调,三处最容易撞在一起。

复现靠运气,修复靠把时序画出来。先把谁依赖谁写清楚,再决定哪一步该等。

开发