不要在ploteablefuture.supplyasync中更改当前时间
这里的摘要(Java 8)
LOGGER.info("==== MAIN: before_supplyAsync(), lastTimeSecLocal = {}, timeWindowSec = {}",
lastTimeSecLocal, timeWindowSec);
CompletableFuture<Boolean> completableFuture = CompletableFuture.supplyAsync(() -> {
long durationSecLocal = 0L;
while (durationSecLocal < timeWindowSec) {
long currentTimeSecLocal = System.currentTimeMillis() / 1000;
durationSecLocal = currentTimeSecLocal - lastTimeSecLocal;
LOGGER.info(
"\n\t\t>>>>>> supplyAsync: currentTimeSecLocal = {}, lastTimeSecLocal = {}, durationSecLocal = {}",
currentTimeSecLocal, lastTimeSecLocal, durationSecLocal);
}
return true;
}); // end supplyAsync
和这里日志:
2022-04-15 11:59:41.179 INFO [MyClass:http-nio-172.19.5.163-8091-exec-9] ==== MAIN: before_supplyAsync(), lastTimeSecLocal = 1650013181, timeWindowSec = 15
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
为什么 CurrentTimesEclocal 不更改?
Here snippet (java 8)
LOGGER.info("==== MAIN: before_supplyAsync(), lastTimeSecLocal = {}, timeWindowSec = {}",
lastTimeSecLocal, timeWindowSec);
CompletableFuture<Boolean> completableFuture = CompletableFuture.supplyAsync(() -> {
long durationSecLocal = 0L;
while (durationSecLocal < timeWindowSec) {
long currentTimeSecLocal = System.currentTimeMillis() / 1000;
durationSecLocal = currentTimeSecLocal - lastTimeSecLocal;
LOGGER.info(
"\n\t\t>>>>>> supplyAsync: currentTimeSecLocal = {}, lastTimeSecLocal = {}, durationSecLocal = {}",
currentTimeSecLocal, lastTimeSecLocal, durationSecLocal);
}
return true;
}); // end supplyAsync
And here logs:
2022-04-15 11:59:41.179 INFO [MyClass:http-nio-172.19.5.163-8091-exec-9] ==== MAIN: before_supplyAsync(), lastTimeSecLocal = 1650013181, timeWindowSec = 15
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
2022-04-15 11:59:41.183 INFO [MyClass:ForkJoinPool.commonPool-worker-9]
>>>>>> supplyAsync: currentTimeSecLocal = 1650013181, lastTimeSecLocal = 1650013181, durationSecLocal = 0
Why currentTimeSecLocal not changed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
CurrentTimesEclocal应该每秒更改,并且
我运行了此代码:
日志是:
currentTimeSecLocal should change every second, and it does
i runned this code:
and the log is:
这有帮助(我不明白为什么)
This help (I don't understand why)