Rumah  >  Artikel  >  Java  >  Pengaturcaraan pengecualian Java analisis contoh FutureTask

Pengaturcaraan pengecualian Java analisis contoh FutureTask

WBOY
WBOYke hadapan
2023-06-03 17:10:051435semak imbas

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam