6.1 Obyek eksekusi

Dadi kita entuk bagean paling gedhe saka paket kasebut. Iku bakal njlèntrèhaké antarmuka kanggo mbukak tugas bedo karo kemampuan kanggo njupuk asil liwat Future lan Callable antarmuka, uga layanan lan pabrik kanggo nggawe thread pools: ThreadPoolExecutor, ScheduledPoolExecutor, ForkJoinPool.

Kanggo pangerten sing luwih apik, ayo nggawe dekomposisi antarmuka lan kelas.

6.2 Realisasi obyek sing bisa dieksekusi

Future<V>iku antarmuka apik kanggo njupuk asil saka operasi bedo. Cara utama ing kene yaiku metode get, sing ngalangi utas saiki (nganggo utawa tanpa wektu entek) nganti operasi asinkron ing utas liyane wis rampung. Ana uga cara tambahan kanggo mbatalake operasi lan mriksa status saiki. Kelas FutureTask asring digunakake minangka implementasine.

RunnableFuture<V>- yen Future minangka antarmuka kanggo API Klien, mula antarmuka RunnableFuture wis digunakake kanggo miwiti bagean bedo. Kasil rampung roto () cara ends operasi bedo lan ngidini asil kanggo njupuk liwat cara njaluk.

Callable<V>- Analog lengkap antarmuka Runnable kanggo operasi asinkron. Ngidini sampeyan ngasilake nilai sing diketik lan mbuwang pengecualian sing wis dicenthang. Sanajan antarmuka iki ora duwe cara roto (), akeh kelas java.util.concurrent ndhukung bebarengan karo Runnable.

FutureTask<V>- implementasine antarmuka Future / RunnableFuture. Operasi asynchronous dijupuk minangka input kanggo salah siji konstruktor ing wangun obyek Runnable utawa Callable. Kelas FutureTask dhewe wis dirancang kanggo dibukak ing thread buruh, Contone, liwat Thread anyar (tugas) wiwitan () utawa liwat ThreadPoolExecutor. Asil operasi asinkron dijupuk liwat metode get(...).

Delayed- digunakake kanggo tugas asinkron sing kudu diwiwiti ing mangsa ngarep, uga ing DelayQueue. Ngidini sampeyan nyetel wektu sadurunge wiwitan operasi asinkron.

ScheduledFuture<V>- antarmuka panandha sing nggabungake antarmuka Future lan Tundha.

RunnableScheduledFuture<V>- antarmuka sing nggabungake RunnableFuture lan ScheduledFuture. Kajaba iku, sampeyan bisa nemtokake manawa tugas kasebut minangka tugas sepisan utawa kudu ditindakake kanthi frekuensi tartamtu.