Maison  >  Article  >  Java  >  Programmation d'exceptions Java Analyse d'instance FutureTask

Programmation d'exceptions Java Analyse d'instance FutureTask

WBOY
WBOYavant
2023-06-03 17:10:051402parcourir

Explication

1. La classe FutureTask implémente non seulement l'interface Future mais implémente également l'interface Runnable, qui représente un Runnable pouvant générer des résultats.

2. La classe FutureTask implémente les méthodes de démarrage et d'annulation de tâches de l'interface Future, demandant si la tâche est terminée et obtenant les résultats des calculs.

Pour obtenir les résultats de la tâche FutureTask, nous ne pouvons l'obtenir qu'en appelant la série de méthodes getXXX(). Ces méthodes seront bloquées lorsque les résultats ne seront pas encore sortis. En même temps, la tâche peut être bloquée. Type appelable (avec résultats renvoyés) ou Est un type Runnable (aucun résultat renvoyé).

Instances

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);
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer