CodeGym /Java Course /Modul 3 /Pelaksana: objek yang dapat dieksekusi

Pelaksana: objek yang dapat dieksekusi

Modul 3
Level 19 , Pelajaran 5
Tersedia

6.1 Objek yang dapat dieksekusi

Jadi kami sampai pada bagian terbesar dari paket. Ini akan menjelaskan antarmuka untuk menjalankan tugas asinkron dengan kemampuan untuk mendapatkan hasil melalui antarmuka Masa Depan dan Dapat Dipanggil, serta layanan dan pabrik untuk membuat kumpulan utas: ThreadPoolExecutor, ScheduledPoolExecutor, ForkJoinPool.

Untuk pemahaman yang lebih baik, mari lakukan sedikit dekomposisi antarmuka dan kelas.

6.2 Realisasi objek yang dapat dieksekusi

Future<V>adalah antarmuka yang luar biasa untuk mendapatkan hasil operasi asinkron. Metode kunci di sini adalah metode get, yang memblokir utas saat ini (dengan atau tanpa batas waktu) hingga operasi asinkron pada utas lain selesai. Ada juga metode tambahan untuk membatalkan operasi dan memeriksa status saat ini. Kelas FutureTask sering digunakan sebagai implementasi.

RunnableFuture<V>- jika Future adalah antarmuka untuk API Klien, maka antarmuka RunnableFuture sudah digunakan untuk memulai bagian asinkron. Penyelesaian metode run() yang berhasil mengakhiri operasi asinkron dan memungkinkan hasilnya diambil melalui metode get.

Callable<V>- Analog yang diperluas dari antarmuka Runnable untuk operasi asinkron. Memungkinkan Anda mengembalikan nilai yang diketik dan melontarkan pengecualian yang dicentang. Meskipun antarmuka ini tidak memiliki metode run(), banyak kelas java.util.concurrent mendukungnya bersama dengan Runnable.

FutureTask<V>— implementasi antarmuka Future/RunnableFuture. Operasi asinkron diambil sebagai input ke salah satu konstruktor dalam bentuk objek Runnable atau Callable. Kelas FutureTask sendiri dirancang untuk diluncurkan di thread pekerja, misalnya, melalui Thread(task).start() baru atau melalui ThreadPoolExecutor. Hasil operasi asinkron diambil melalui metode get(...).

Delayed- digunakan untuk tugas asinkron yang harus dimulai di masa mendatang, serta di DelayQueue. Memungkinkan Anda menyetel waktu sebelum dimulainya operasi asinkron.

ScheduledFuture<V>- antarmuka penanda yang menggabungkan antarmuka Masa Depan dan Tertunda.

RunnableScheduledFuture<V>- antarmuka yang menggabungkan RunnableFuture dan ScheduledFuture. Selain itu, Anda dapat menentukan apakah tugas merupakan tugas satu kali atau harus dijalankan pada frekuensi tertentu.

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION