我有以下代码片段。
import io.vertx.core.Future;
public void start(Future<void> fut){
/*
some code
*/
fut.complete()
}
Run Code Online (Sandbox Code Playgroud)
为什么在这里使用Future?
Future<Void> 是不返回任何值的执行的未来结果。
这通常是调用 a 的run方法的结果Runnable。
正常的 void 调用看起来像(请参阅 参考资料r.run()):
Runnable r = () -> System.out.println("running");
r.run();
Run Code Online (Sandbox Code Playgroud)
当这种调用异步完成时,例如通过执行程序服务或可完成的未来,它会变成未来:
Future<Void> future = CompletableService.runAsync(r);
Run Code Online (Sandbox Code Playgroud)
这只是不返回结果的执行的未来。这个“未来”包含有关执行的信息,即使它没有“返回”值(例如会有什么Future<Object>)。
您可以获得有关异步执行的信息。它包含的一些信息示例:
boolean finished = future.isDone(); //Check if the async execution has completed
future.get(10L, TimeUnit.SECONDS); //Wait for completion with timeout
future.cancel(true); //cancel the execution
Run Code Online (Sandbox Code Playgroud)
java.lang.Void是void(未实例化的占位符)的引用类型。因此,您可以以Future<Void>与查看相同的方式查看Future<Object>,只需记住您对void不返回任何值的了解。
您可以在此处阅读有关这些类型的更多信息:
| 归档时间: |
|
| 查看次数: |
10209 次 |
| 最近记录: |