在 java 类之间共享缓存资源

Posted

技术标签:

【中文标题】在 java 类之间共享缓存资源【英文标题】:Sharing cached resources between java classes 【发布时间】:2021-12-19 03:57:35 【问题描述】:

我有三个类,testContainer.java、recurringTest.java 和 databaseHelper.java

testContainer 类只运行一次并且在 recurringTest 一次又一次运行时保持活动状态。

public class testContainerA extends someExternalClass 
    public void initialize() 
        databaseHelper.getResoucefromDB(A)
        runTestContinuously(new recurringTestA());
    

public class recurringTestA 
    // some load tests that accesses resourceMap.get(A)



public class testContainerB extends someExternalClass 
    public void initialize() 
        databaseHelper.getResoucefromDB(B)
        runTestContinuously(new recurringTestB());
    

public class recurringTestB 
    // some different load tests that accesses resourceMap.get(B)


public class databaseHelper
    public static HashMap<String, List<resource>> resourceMap;
    public void getResoucefromDB(String resourceType) 
        resourceList.put(resourceType, callDatabase(resourceType));
    

要求:

    recurringTest 构造函数不能有任何参数。 不能使用任何文件来保存资源列表。 recurringTestA 和 recurringTestB 设置为同时运行

我尝试将资源保存在一个文件中,它可以工作。我不想使用任何文件。如何缓存/保存资源,以便可以在测试内部访问它而无需多次调用数据库? 如何在 resourceList 中保存资源,以便重复测试可以访问它,而无需一次又一次地调用 DB。

【问题讨论】:

【参考方案1】:

这可能是一个糟糕的答案,但您可以尝试为此使用静态变量。

【讨论】:

以上是关于在 java 类之间共享缓存资源的主要内容,如果未能解决你的问题,请参考以下文章

谷歌数据流在 Windows 之间共享资源

关闭内存缓存对效能有影响吗

Java学习笔记--ThreadLocal

java-- 多线程之间实现通讯

怎么实现springMVC 多线程并发

共享资源访问 + UI 更新的 GCD 模式?