我正在尝试每3秒生成一个数字,并更新当前数字。我可以每3秒生成一次数字;但是,当前的数字不会更新。我希望能得到任何帮助。
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;
}输出:
CurrentNum ==== 0
Result ==== 631
Result ==== 789
Result ==== 958我希望输出为:
Result ==== 631
CurrentNum ==== 631
Result ==== 789
CurrentNum==== 789发布于 2020-07-24 06:31:55
CurrentNum的打印只会打印一次,因为它只会运行一次。由于runnable是按时间间隔运行的,因此每隔3秒就会调用一次。如果希望打印CurrentNum,请将System.out.println("CurrentNum ==== "+CurrentNum);行移动到helloRunnable函数内部。
System.out.println("CurrentNum ==== "+CurrentNum);
CurrentNum=task2();
System.out.println("Result ==== "+CurrentNum);https://stackoverflow.com/questions/63063668
复制相似问题