gpt4 book ai didi

java - 避免并发修改

转载 作者:太空宇宙 更新时间:2023-11-04 06:09:06 24 4
gpt4 key购买 nike

假设我正在制作一款游戏,其中屏幕在帧速率限制内尽可能频繁地更新,但对象仅在游戏时钟上更新。如何在不冒并发修改风险的情况下渲染复杂对象?例如,如果我需要渲染引擎访问有关类对象的详细信息以做出图形决策,而这些对象可能会同时被游戏引擎更改。

我想在渲染之前对对象进行深层复制是可行的,但是在复制过程中不会发生同样的问题吗?我认为在逐段复制数组列表时编辑数组列表会导致问题。在这样的时刻,我认为存在一些我只是不知道的行业标准。

最佳答案

这是一个复杂的问题,但我会尽力为您提供一些我在处理这个问题时发现的提示。首先是数组和列表的问题。我发现有用的是根据用于保存对象的列表生成一个新列表。这样,您只需在创建新列表时小心编辑列表即可。创建的列表一旦用完就可以丢弃。如果可以的话,还要避免从列表中删除项目或更改它们在列表中的位置。这使得引入并发问题变得更加容易。

现在来讨论渲染问题。假设您一次只有一个线程渲染。我发现创建一个保留更改并在每个渲染周期结束或开始时进行实际更改的对象很有用,这样您就可以随时更改对象,但更改要到下一个渲染周期才会生效。

关于java - 避免并发修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28937501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com