ScheduleAtFixedRate未使用Future java 8提供输出

Has*_*hra 4 java concurrency scheduled-tasks java.util.concurrent java-8

在下面的代码中scheduleAtFixedRate无休止地运行.

所以问题是: -

为什么java提供无限的线程执行场景

Runnable task1 = () -> System.out.println("Hello Zoo");
Future<?> result = service1.scheduleAtFixedRate(task1, 8, 2, TimeUnit.SECONDS);
System.out.println(result.get());
System.out.println(result.isDone());
Run Code Online (Sandbox Code Playgroud)

程序从不打印输出result.get()应为null或System.out.println(result.isDone());应为0.

所以我在调用scheduleAtFixedRate代码之后的观点应该是无法访问的.

Old*_*eon 6

scheduleAtFixedRate返回一个Future描述如下:

......任务只能通过取消或终止执行人来终止.

所以调用它的get方法将永远等待,因为:

那么Future.get()

如果需要等待计算完成,然后检索其结果.

因此,您将永远等待Future.get()返回的方法.