Heim  >  Artikel  >  Java  >  Java-Ausnahmeprogrammierung, FutureTask-Instanzanalyse

Java-Ausnahmeprogrammierung, FutureTask-Instanzanalyse

WBOY
WBOYnach vorne
2023-06-03 17:10:051460Durchsuche

Erklärung

1. Die FutureTask-Klasse implementiert nicht nur die Future-Schnittstelle, sondern auch die Runnable-Schnittstelle, die ein Runnable darstellt, das Ergebnisse generieren kann.

2. Die FutureTask-Klasse implementiert die Methoden der Future-Schnittstelle zum Starten und Abbrechen von Aufgaben, zum Abfragen, ob die Aufgabe abgeschlossen ist, und zum Erhalten von Berechnungsergebnissen.

Um die Ergebnisse der FutureTask-Aufgabe zu erhalten, können wir sie nur abrufen, indem wir die Methodenreihe getXXX() aufrufen. Diese Methoden werden blockiert, wenn die Ergebnisse noch nicht ausgegeben wurden Aufrufbarer Typ (mit zurückgegebenen Ergebnissen) oder Ist ein ausführbarer Typ (kein Rückgabeergebnis).

Instanzen

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

Das obige ist der detaillierte Inhalt vonJava-Ausnahmeprogrammierung, FutureTask-Instanzanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen