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代码之后的观点应该是无法访问的.
scheduleAtFixedRate返回一个Future描述如下:
......任务只能通过取消或终止执行人来终止.
所以调用它的get方法将永远等待,因为:
如果需要等待计算完成,然后检索其结果.
因此,您将永远等待Future.get()返回的方法.