gpt4 book ai didi

algorithm - 这种多线程程序生成算法有哪些潜在问题?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:53:18 24 4
gpt4 key购买 nike

我知道这与游戏设计相关,但我已阅读 StackOverflow 常见问题解答,其中说明可以在此处提出软件算法问题。如果这在游戏设计上更好,那么我希望有人能帮助我移动它,谢谢!

我正在设计一个多线程程序地牢生成器。然而,我想知道我可能会遇到什么样的问题——我一直没能找到很多算法,其中清楚地显示了多线程。

我必须创建三个不同的对象。一个包含多个“房间”的“世界”,每个房间都将容纳潜在的“对象”。

目前的算法是这样的:

Step 1: Generate World
Step 2: Generate Rooms and Objects concurrently

世界包含一个房间列表和一个“可用对象列表”。 Room 创建方法将生成房间并将它们添加到 World 的房间列表中。对象创建过程不会以任何方式与 Room 过程进行通信。相反,对象创建过程将从世界的房间列表中随机选择房间,并在房间中生成随机对象。

我看到的唯一问题是——如果对象创建过程过早完成。换句话说,只有房间列表中的一些房间会在其中创建对象,因为房间创建过程比对象创建过程晚完成。

是否还有更多问题,有没有人对开发此类算法有任何建议或经验?

最佳答案

首先,你提到的问题不是真实的,因为你应该简单地完成3个步骤:

  1. 生成世界
  2. 同时生成房间
  3. 并发生成对象

按照这个顺序,确保所有房间都存在。无论如何,就性能而言,将 2+3 保持在一起并不会带来太多好处。

但是,与并发相关的典型问题是,主要问题是将结果连接在一起。如果您的房间保存在列表中,则需要同步附加到该列表,这会减慢您的处理速度。一旦您开始在世界空间中实际创建房间并且必须确保并行生成的房间不占用相同的空间(对于房间内的对象也是如此),就会出现一个更复杂的问题。

关于algorithm - 这种多线程程序生成算法有哪些潜在问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7898889/

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