java - 在java中维护线程中变量的值

标签 java multithreading hibernate

我正在处理多线程应用程序,所以我有一个线程,它有一个全局ArrayList变量,我正在从数据库中获取值列表并将其分配给该变量。我限制了应该获取的列表数量为 100。在后端我使用 hibernate。

我已经让这个线程定期在后台运行,但我想做的是,每当这个线程运行时,它都会获取接下来的 100 个项目列表。而且我不想使用静态,也不想将其维护在数据库中,我很困惑如何维护一个计数器,该计数器将告诉我的获取方法要获取的下 100 个项目。有人可以帮忙吗,我怎样才能实现这个目标?以下是我的代码示例,

public class DemoThread implements Runnable {

    private ArrayList <<>> samplePojoList = null;

    @Override
    public void run() {
        MyDaoClass dao = null;

        try { 
            // this dao method fetching list of 100 results from database, 
            // for each iteration i want to fetch next 100 result from 
            // database 
            samplePojoList = dao.getSampleList();
        } catch (Exception e) {}
    }
}

最佳答案

在这种情况下,您可以很好地利用ThreadLocal变量。

请参阅下面的示例:

private ThreadLocal<Integer> counter = new ThreadLocal<Integer>();

关于java - 在java中维护线程中变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37337833/

相关文章:

c++ - 使用 pthread_cond_wait 等待的线程在收到信号后需要多长时间才能唤醒?我如何估计这个时间?

java - 应用程序中的 Hibernate .hbm.xml 文件路径?

c# - 如何从使用计时器的对象引发事件返回到 UI 线程

Java - 性能问题;变量名和文件名长度

java - unix 中字符串中双引号内的双引号

java - 无法使用无服务器本地调用 AWS Lambda

swift - 在后台或主线程中执行更新时设置 GIF 图像会阻止 UI

java - 我可以在 JPA 中查询对象吗

java - Hibernate 标准一对多问题

java - 使用 java runtime exec 运行连续的命令 Linux