我正在尝试学习java的并发API。下面是一个示例程序。
class WaitTest {
public static void main(String[] args) throws InterruptedException, ExecutionException, TimeoutException {
ExecutorService executorService = null;
try {
executorService = Executors.newSingleThreadExecutor();
Future<?> future = executorService.submit(() ->
{
for (int i = 0; i < 100; i++) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Printing " + i);
}
});
future.get(5, TimeUnit.SECONDS);
System.out.println("Reached successfully");
} finally {
if (executorService != null) {
executorService.shutdown();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
提供给 ExecutorService 的 Runnable 任务需要 10 秒才能完成。我已将超时设置为 5 …