并发时序 —— 难复现的 bug
同一串操作,慢慢点没事,手快一点就出错。两个异步任务同时改同一份状态,谁先完成谁后完成,结果就不一样。「这几个都是典型的并发操作时序不对导致的 bug 嘛……所以你懂的」
这类问题在日志里往往只留下一个结果,没有中间顺序。加锁能解决一部分,锁多了又会卡住主线程。UI 状态、缓存写入、网络回调,三处最容易撞在一起。
复现靠运气,修复靠把时序画出来。先把谁依赖谁写清楚,再决定哪一步该等。
同一串操作,慢慢点没事,手快一点就出错。两个异步任务同时改同一份状态,谁先完成谁后完成,结果就不一样。「这几个都是典型的并发操作时序不对导致的 bug 嘛……所以你懂的」
这类问题在日志里往往只留下一个结果,没有中间顺序。加锁能解决一部分,锁多了又会卡住主线程。UI 状态、缓存写入、网络回调,三处最容易撞在一起。
复现靠运气,修复靠把时序画出来。先把谁依赖谁写清楚,再决定哪一步该等。