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!