小编Rap*_*eat的帖子

我的多线程游戏一直处于100%CPU状态.如何管理线程活动以减少CPU负载?

我有一个DirectX游戏,在双核系统上产生2个增强线程:1个用于游戏/渲染(通常在四核CPU上分成自己的线程),以及另外1个程序生成游戏世界的线程.我相信我的音频中间件也会产生自己的线程来播放SFX和音乐.

游戏总是在CPU上运行100%,这反过来可能会导致音频系统的一些溅射.我希望通过更好地管理Generation Thread的活动来减少CPU负载.虽然有时我需要它全速运行,但有时候(当玩家没有移动太多时)它只是不断更新而不是真的做了很多.

是否可以/建议手动管理线程的活动程度?如果是这样,我可以用什么策略来做到这一点?我一直看到人们说睡眠()功能并不是真的推荐,但我真的不知道还有什么可做的.

或者,我是通过尝试从线程管理中挤出循环来咆哮错误的树,我会通过传统的分析/优化更好地服务吗?

c++ windows multithreading boost-thread

0
推荐指数
1
解决办法
818
查看次数

标签 统计

boost-thread ×1

c++ ×1

multithreading ×1

windows ×1