CodeGym/Java Kursu/Modül 3/Yürütücüler: yürütülebilir nesneler

Yürütücüler: yürütülebilir nesneler

Mevcut

6.1 Yürütülebilir nesneler

Böylece paketin en büyük kısmına geldik. Future ve Callable arabirimleri aracılığıyla sonuç elde etme yeteneği ile eşzamansız görevleri çalıştırmak için arabirimlerin yanı sıra iş parçacığı havuzları oluşturmak için hizmetler ve fabrikaları açıklayacaktır: ThreadPoolExecutor, ScheduledPoolExecutor, ForkJoinPool.

Daha iyi anlamak için, arayüzleri ve sınıfları biraz ayrıştıralım.

6.2 Yürütülebilir nesnelerin gerçekleştirilmesi

Future<V>eşzamansız bir işlemin sonuçlarını almak için harika bir arayüz. Buradaki anahtar yöntem, başka bir iş parçacığında eşzamansız bir işlem tamamlanana kadar geçerli iş parçacığını (zaman aşımı olsun ya da olmasın) engelleyen get yöntemidir. İşlemi iptal etmek ve mevcut durumu kontrol etmek için ek yöntemler de vardır. FutureTask sınıfı genellikle bir uygulama olarak kullanılır.

RunnableFuture<V>- Gelecek, İstemci API'si için bir arabirimse, RunnableFuture arabirimi zaten eşzamansız kısmı başlatmak için kullanılıyor. run() yönteminin başarıyla tamamlanması, eşzamansız işlemi sonlandırır ve sonuçların get yöntemi aracılığıyla alınmasını sağlar.

Callable<V>- Eşzamansız işlemler için Runnable arabiriminin genişletilmiş bir analoğu. Yazılı bir değer döndürmenize ve kontrol edilen bir istisna atmanıza izin verir. Bu arayüzün bir run() yöntemi olmamasına rağmen, birçok java.util.concurrent sınıfı onu Runnable ile birlikte destekler.

FutureTask<V>— Future/RunnableFuture arabiriminin uygulanması. Asenkron bir işlem, Runnable veya Callable nesneleri şeklinde yapıcılardan birine girdi olarak alınır. FutureTask sınıfının kendisi, örneğin new Thread(task).start() veya ThreadPoolExecutor aracılığıyla bir çalışan iş parçacığında başlatılmak üzere tasarlanmıştır. Eşzamansız bir işlemin sonuçları get(...) yöntemiyle alınır.

Delayed- DelayQueue'de olduğu gibi gelecekte başlaması gereken eşzamansız görevler için kullanılır. Eşzamansız bir işlemin başlamasından önceki zamanı ayarlamanızı sağlar.

ScheduledFuture<V>- Future ve Delayed arayüzlerini birleştiren bir işaretleyici arayüzü.

RunnableScheduledFuture<V>- RunnableFuture ve ScheduledFuture'u birleştiren bir arayüz. Ek olarak, görevin tek seferlik bir görev olup olmadığını veya belirli bir sıklıkta çalıştırılması gerekip gerekmediğini belirtebilirsiniz.

Yorumlar
  • Popüler
  • Yeni
  • Eskimiş
Yorum bırakmak için giriş yapmalısınız
Bu sayfada henüz yorum yok