gpt4 book ai didi

java - 没有看到任何对 Callable.call() 方法的调用,但 call() 方法内部的代码仍然被执行,call() 方法在哪里被调用?

转载 作者:行者123 更新时间:2023-12-01 18:06:57 28 4
gpt4 key购买 nike

我是 Java 新手,我正在尝试学习 ScheduledExecutorService 接口(interface)。我在网上看到了下面的代码。

我没有看到任何对 Callable.call() 方法的调用,但 call() 方法内的代码仍然被执行。 call()方法在哪里被调用了?

ScheduledExecutorService ses1 = Executors.newScheduledThreadPool(5);

ScheduledFuture sf1 = ses1.schedule(new Callable() {
@Override
public Object call() throws Exception {
System.out.println("executed!");
return "called";
}
},
2,
TimeUnit.SECONDS);

ses1.shutdown();

输出:

executed!

最佳答案

根据 documentationScheduledExecutorService 中名为 schedule() 的方法执行以下操作: :

Creates and executes a one-shot action that becomes enabled after the given delay.

第一个参数可以是CallableRunnable。无论哪种情况,当超时到期时,ScheduledExecutorService 都会调用 Callable 的 call() 方法或 Runnable 的 run()方法。

这正是执行器服务的作用。

关于java - 没有看到任何对 Callable.call() 方法的调用,但 call() 方法内部的代码仍然被执行,call() 方法在哪里被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35666394/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com