我正在开发一个网络浏览器游戏,我想问一下线程安全。假设我们有一个域类(数据库实体)用户和 MyBuilding:
class User
{
public String name;
List<Building> myBuildings = new ArrayList<Building>();
}
和
class MyBuilding
{
public int buildingId;
public int level;
}
现在,用户想要获得例如建筑物的健康点。我有另一个类,它存储有关那些构建规范的信息,不需要存储在数据库中,它们只是“构建规范”类,并在 Web 应用程序开始时从 xml 文件初始化。例如:
@Component
class BuildingSpecificationHolder
{
public List<BuildingSpecification> buildings = new ArrayList<BuildingSpecification>();
}
// 下面的类不是 Spring 组件,只是一个简单的类
class BuildingSpecification
{
public int getHealthPointByBuildingLevel(MyBuilding usersBuilding)
{
return usersBuilding.getLevel() * 10;
}
现在我的问题是:'public int getHealthPointByBuildingLevel(MyBuilding usersBuilding)' 线程安全吗?如果同时不同的用户想要获得建筑hp,他们都访问上述方法,即在NON-spring对象中。请注意,“BuildingSpecification”的所有方法都是只读的(用户永远不会更改建筑物属性),但是不同的用户将传递给这些方法不同的“MyBuilding”参数。只有拥有这些建筑规范的类才是 Spring 组件。