首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每3秒生成一次编号,并更新当前编号

每3秒生成一次编号,并更新当前编号
EN

Stack Overflow用户
提问于 2020-07-24 05:54:23
回答 1查看 65关注 0票数 0

我正在尝试每3秒生成一个数字,并更新当前数字。我可以每3秒生成一次数字;但是,当前的数字不会更新。我希望能得到任何帮助。

代码语言:javascript
复制
public static void main(String[] args) {
    
    Runnable helloRunnable = new Runnable() {
        public void run() {
      
            CurrentNum=task2();
        
            System.out.println("Result    ====    "+CurrentNum);

        }
    };

    ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
    executor.scheduleAtFixedRate(helloRunnable, 0, 3, TimeUnit.SECONDS);
    
     System.out.println("CurrentNum    ====    "+CurrentNum);
     
    
}
public static int task2() {
    // create instance of Random class 
    Random rand = new Random(); 

    // Generate random integers in range 0 to 999 
    int rand_int1 = rand.nextInt(1000); 
    
    return rand_int1;
}

输出:

代码语言:javascript
复制
    CurrentNum    ====    0
    Result    ====    631
    Result    ====    789
    Result    ====    958

我希望输出为:

代码语言:javascript
复制
    Result    ====    631
    CurrentNum ====    631
    Result    ====    789
    CurrentNum====    789
EN

回答 1

Stack Overflow用户

发布于 2020-07-24 06:31:55

CurrentNum的打印只会打印一次,因为它只会运行一次。由于runnable是按时间间隔运行的,因此每隔3秒就会调用一次。如果希望打印CurrentNum,请将System.out.println("CurrentNum ==== "+CurrentNum);行移动到helloRunnable函数内部。

代码语言:javascript
复制
System.out.println("CurrentNum    ====    "+CurrentNum);

CurrentNum=task2();
        
System.out.println("Result    ====    "+CurrentNum);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63063668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档