将本站设为首页
收藏祭司官网,记住:www.jsshengmin.com
账号:
密码:

祭司书院:看啥都有、更新最快

祭司书院:www.jsshengmin.com

如果你觉得好,恳请收藏

您当前的位置:祭司书院 -> 游戏二十四品 -> 第九章 冲刺期的第一个Bug

第九章 冲刺期的第一个Bug

温馨提示:如果本章属于内容错误等情况,请点击下面的按钮发送报告,我们会在一分钟内纠正,谢谢

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。二十次,没


  本章未完,请点击下一页继续阅读!

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

我能演化仙神道图
作者:鱼龙飞度
简介: 有诸圣高高悬,有神魔掌着生死权。天地也,莫要把清浊分辨,咱也趁乱成个仙!
<...
更新时间:2026-03-03 23:33:00
最新章节:第93章 铺子煞星,目标通宝月中拍卖会
八道横行
作者:国产达闻西
简介: 【中式序列文】【老书成绩万均序列大明,品质保证】

地有东南...
更新时间:2026-03-03 22:53:00
最新章节:第384章 埋伏反剿
大秦:开局扶苏被贬,忽悠他造反
作者:瑜兰瑾
简介: “扶苏你都三十万大军在手了,还不造反?”\n

“等秦始皇死...
更新时间:2026-03-03 23:39:57
最新章节:第1071章 在船上加上火炮口!
重生在星际选择成为药剂师
作者:长尾兔子
简介: 陈房子年纪轻轻便猝死了,死前啥都没有,没有房子没有存款没有恋人,浑身散发着满满的社畜...
更新时间:2026-03-03 23:39:08
最新章节:732 反正早上已经看过了,再洗洗也无所谓了
被休后,每日情报助我熬过荒年
作者:慕莲莲
简介: 灾荒+系统+日常流+发家致富+极品不多+无空间\n李木槿在末世挣扎求生了一年,死于饥...
更新时间:2026-03-03 23:35:18
最新章节:第371章 他是谁?
战锤:孝出强大
作者:柯基超小只
简介: 黑暗与绝望是这个世界的代名词,如地狱般折磨着这里的每一个生命,但这一次,命运却开了个...
更新时间:2026-03-03 22:38:00
最新章节:第227章 不,我的金子!