-
我给一段并发临界区加了 lock 锁、自以为线程安全了,可线上还是不停冒出数据被并发改乱的脏数据,我反复确认 lock 语句写得没错临界区也包对了,最后才发现问题出在我锁的那个对象上——每个线程锁的根本不是同一个对象、这把锁形同虚设的深度复盘
我有一段会被多个线程并发调用的代码,里面要读改一份共享状态(往共享集合加元素、更新共享计数),我知道需要互斥就规规矩矩用 lock 把临界区包了起来、自以为万无一失。可线上偏偏时不时出现脏数据:共享集合元素丢失、计数对不上,典型的并发写竞争没被挡住。我反复检查 lock 语法没错、临界区范围也把读改都包进去了,又怀疑别处有没加锁的路径也没发现。直到盯着 lock 后面括号里的锁对象看才如遭雷击:我…- 0
- 0
互斥锁
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!

