gpt4 book ai didi

Java Servlet -> 具有非静态属性的 Hashmap 中的静态图

转载 作者:行者123 更新时间:2023-11-30 11:39:19 25 4
gpt4 key购买 nike

我有一个大图,它在 Java Servlet 中处理以用于路由目的。 Graph 有 100k+ 个节点,所以我无法为每个新调用重新加载它。目前,图形从我的数据库加载到 RAM 中一次,并在 Hashmap 中引用。

当我启动 servlet(创建一个新实例)时,我需要通过 id 在图中找到起始节点。因此我使用 HashMap 。

一切正常。

我的问题是,在我的路由任务中,我需要更改图表中的某些属性,即行进距离。对于每个创建的实例,这些属性当然需要是单独的。目前,我通过在创建新实例时重置所有“非静态”属性来处理该任务。这会产生两个问题。

A) 实例不是线程安全的

B) 重置非常耗时。高达实际路由的 10 倍。

所以我需要的是我的 Servlet 的所有实例的静态 Hashmap。这个 Hashmap 需要包含我网络的所有节点。这些节点需要具有静态属性,如 ID、坐标、邻居节点等,但也需要非静态属性,如行进距离。

我该怎么做?

感谢阅读和分享想法

最佳答案

您的问题可以描述为一个在运行时构建的模型,并为您的服务的每次执行实例化

当您说“静态”时,我认为您指的是“常量”。变量属性确实特定于每次执行,而不是特定于每个 Servlet 实例。在执行过程中,您应该构建一个单独的结构,该结构具有与常量属性平行的可变属性。变量结构中的每个节点都引用常量结构中的单个节点。随着对每个节点的需求的出现,可变结构逐渐按需构建。该结构在执行结束时被丢弃。

关于Java Servlet -> 具有非静态属性的 Hashmap 中的静态图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13320768/

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