免费阅读
返回
菜单
上一章查看最新章节下一章

第九章 冲刺期的第一个Bug

作品:游戏二十四品作者:殊胜玩家
如果本章错误,请点击报错10秒纠正

g。加了更多日志,在可能出问题的锁同步处埋了十几个断点,重新编译,运行测试程序。

这一次,Bug在第三次测试时就出现了。世界卡在0.3倍慢放,李师傅的动作像在水里走路,一帧一帧地挪。日志文件滚屏,他一行行看,眼睛发酸。

忽然,他注意到一行奇怪的日志:

[TimeSystem] Thread conflict detected at timestamp 120.5s.

[RenderThread] Acquired lock at 120.5001s.

[TimeThread] Acquired lock at 120.5001s.

时间戳完全一样。两个线程,在同一毫秒内,获取了同一把锁。理论上不可能,除非系统时钟精度不够,或者锁的实现有漏洞。

他查代码。用的是标准的CRITICAL_SECTION锁,Windows自带的,不应该有问题。除非……他想到一个可能性:在“无事可做”状态下,时间系统会分裂成两条时间轴,每条时间轴都有自己的锁。当玩家退出静止状态,两条时间轴要合并时,需要同时获取两把锁。如果获取顺序不对,可能死锁。

他翻到合并逻辑的代码。果然,写成了:

lock(timeLock_室内);

lock(timeLock_窗外);

// 合并逻辑

unlock(timeLock_窗外);

unlock(timeLock_室内);

而另一个地方,渲染线程更新窗外光影时,顺序是:

lock(timeLock_窗外);

lock(timeLock_室内);

// 更新逻辑

unlock(timeLock_室内);

unlock(timeLock_窗外);

经典的死锁条件:线程A锁了1,等2;线程B锁了2,等1。平时很难触发,因为两个线程很少同时卡在这个点上。但在“无事可做”状态下,时间系统频繁分裂合并,渲染线程又要频繁更新窗外光影,撞上的概率就大了。

他修改代码,强制统一锁的获取顺序:永远先锁室内,再锁窗外。重新编译,运行测试程序。

跑完十次,没出现Bug。二十次,没

…。。
   本章没完,请点击下—页继续阅读!如果被转码了请退出转码或者更换浏揽器即可。
  温馨提示:亲爱的读者,如果你觉得本站还好,为了避免丢失和转马,请勿依赖搜索访问,建议你使用[华为刘揽器]或[Firefox火狐刘揽器]访问并收蔵【二零小说】 m.20012001.net。我们将会持续为你更新,还建议你注册会员使用书架功能追书阅读更方便。
上一页 23456下一页
上一章查看最新章节下一章
临时书架加入书签回顶部↑

看了《游戏二十四品》的书友还喜欢看

都成魔尊了,你才说我爹是仙帝?
作者:前天打雷
简介: 【无敌爽文】我都成魔道尊主了,你才告诉我,原来我爹是正道仙帝,我是顶级仙二代?
更新时间:2026-03-04 21:28:09
最新章节:第482章 比试
武道崛起
作者:小仙梦蝶
简介: 开局小家族之子…看柳辰如何一步步做大做强,带领修仙世界屹立星界之巅不一样的修仙体系仙...
更新时间:2026-03-04 21:29:38
最新章节:第三百九十一章 圣之森野战役(十)
我的低保,每天到账1000万
作者:报李
简介: 神豪+商战+幽默+生活【搬砖致富系统:1、低保日结:系统按日给予低保补贴,补贴金额=...
更新时间:2026-03-04 21:18:00
最新章节:第740章 简直是黑店
星际猎人
作者:太极阴阳鱼
简介: 母星毁于内战,少年从废墟走出,入万兽星球,闯上古遗弃之地,盗药都仙缘,窃未来文明科技...
更新时间:2026-03-04 21:38:29
最新章节:第952章、谈崩了
七零老公是糙汉,媳妇儿天黑了
作者:锦九华
简介: 林晚晚穿书第一件事就是退婚,大闹渣男婚礼要补偿,在换极品汉子做老公!
更新时间:2026-03-04 20:59:53
最新章节:第68章 开业大吉
娘子,你不会真的给我下药了吧
作者:桃公旺
简介: 大乾末年,恶霸横行,战乱四起,民不聊生。陈解穿越而来,发现自己竟然是个嗜酒的烂赌鬼,...
更新时间:2026-03-04 20:00:00
最新章节:第七百六十四章 宿命之战
书名:

本站若有图片广告属于第三方接入,非本站所为,广告内容与本站无关,不代表本站立场,请谨慎阅读。

Copyright © 2020 二零小说 All Rights Reserved.kk

SiteMap