Explanation
1. FutureTask 클래스는 Future 인터페이스를 구현할 뿐만 아니라 결과를 생성할 수 있는 Runnable을 나타내는 Runnable 인터페이스도 구현합니다.
2. FutureTask 클래스는 작업 시작 및 취소, 작업 완료 여부 쿼리, 계산 결과 가져오기 등 Future 인터페이스의 메서드를 구현합니다.
FutureTask 작업의 결과를 얻으려면 getXXX() 일련의 메서드를 호출해야만 얻을 수 있습니다. 이 메서드는 결과가 아직 나오지 않은 경우 차단됩니다. 호출 가능 유형(반환된 결과 포함) 또는 실행 가능 유형(반환 결과 없음)입니다.
인스턴스
private static void testFutureTask() throws ExecutionException, InterruptedException { System.out.println("-------------------- testFutureTask --------------------"); // 创建一个 FutureTask(doOneThing 任务) FutureTask<String> futureTask = new FutureTask<>(FutureTaskDemo::doOneThing); // 使用线程池执行 doOneThing 任务 ForkJoinPool.commonPool().execute(futureTask); // 执行 doOtherThing 任务 String doOtherThingResult = doOtherThing(); // 同步等待线程执行 doOneThing 任务结束 String doOneThingResult = futureTask.get(); // 任务执行结果输出 System.out.println("doOneThingResult ---->>> " + doOneThingResult); System.out.println("doOtherThingResult ---->>> " + doOtherThingResult); }
위 내용은 Java 예외 프로그래밍 FutureTask 인스턴스 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!