>  기사  >  Java  >  Java 예외 프로그래밍 FutureTask 인스턴스 분석

Java 예외 프로그래밍 FutureTask 인스턴스 분석

WBOY
WBOY앞으로
2023-06-03 17:10:051457검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제