CodeBlanks Logo Icon CodeBlanks

Runnable

Runnable ile görev tanımlamayı öğrenirsin.

Runnable

Runnable, bir iş parçacığı görevini temsil eden arayüzdür. Thread'i kalıtım almak yerine Runnable uygulanır; bu, başka bir sınıfı zaten kalıtım alan sınıflar için esneklik verir.

class PrintTask implements Runnable {
    public void run() {
        System.out.println("Çalışıyor");
    }
}

Thread t = new Thread(new PrintTask());
t.start();

Java 8'den beri lambda ile daha kısa yazılır: new Thread(() -> System.out.println("Merhaba")). Bu, işlevsel stilde tercih edilen yoldur. Runnable sonuç döndürmez; sonuç için Callable kullanılır.

Lambda ile Runnable

Java 8'den beri Runnable lambda ile kısa yazılır. Tek soyut yöntem (run) olduğundan, derleyici otomatik olarak eşler.

Runnable r = () -> System.out.println("Merhaba");
new Thread(r).start();

Bu, anonim sınıf yazmaktan çok daha kısadır. @FunctionalInterface annotation'ı, arayüzün tek soyut yöntemi olduğunu bildirir; bu sayede lambda kullanımı güvenli hale gelir. Modern Java kodunda lambda tercih edilir.

Uygulama PrintTask ile Runnable uygula

Bir PrintTask sınıfı tanımla; Runnable arayüzünü uygulasın ve public void run() yönteminde System.out.println("Task running") çağrısı yapsın. Bir RunnableDemo sınıfında main yaz; PrintTask örneği oluştur ve run() yöntemini doğrudan çağır.

Başlangıç kodu

Main.java
// PrintTask sınıfını Runnable ile tanımla

// run() yönteminde println çağır

// RunnableDemo sınıfında main yaz ve run() çağır

Örnek çözüm

Main.java
class PrintTask implements Runnable {
    public void run() {
        System.out.println("Task running");
    }
}

class RunnableDemo {
    public static void main(String[] args) {
        new PrintTask().run();
    }
}

Beklenen çıktı

Task running

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Runnable uygulamasını tamamla

Soru
class PrintTask implements ____ {
    public void run() {
        System.out.println("Çalışıyor");
    }
}
Cevap
class PrintTask implements Runnable {
    public void run() {
        System.out.println("Çalışıyor");
    }
}

Açıklama: Runnable arayüzü run() yöntemini sağlar.

2 Runnable'ın tek soyut yönteminin adı ne?

  • call()
  • apply()
  • get()
  • run() Doğru cevap

Açıklama: Runnable arayüzünün tek yöntemi run()'dır.

3 Görev arayüzlerini eşleştir

Kavram Anlamı
Runnable Sonuç döndürmez
Callable Sonuç döndürür
Thread İş parçacığını temsil eder
@FunctionalInterface Tek soyut yöntem işaretler

İleri seviye bölümündeki tüm dersler