Penjelasan
1 Kelas FutureTask bukan sahaja melaksanakan antara muka Masa Depan tetapi juga melaksanakan antara muka Runnable, yang mewakili Runnable yang boleh menjana hasil.
2. Kelas FutureTask melaksanakan kaedah antara muka Masa Depan untuk memulakan dan membatalkan tugas, menanya sama ada tugasan telah selesai dan mendapatkan hasil pengiraan.
Untuk mendapatkan hasil tugas FutureTask, kami hanya boleh mendapatkannya dengan memanggil kaedah getXXX() Kaedah ini akan disekat apabila hasilnya belum keluar boleh daripada jenis Boleh Panggil (dengan hasil pulangan ), atau ia boleh menjadi jenis Boleh Lari (tiada hasil pulangan).
Instance
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); }
Atas ialah kandungan terperinci Pengaturcaraan pengecualian Java analisis contoh FutureTask. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!