Runnable
- Java kursu
- İleri seviye
- Ders 56/82
- 5 dk
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
// 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
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
class PrintTask implements ____ {
public void run() {
System.out.println("Çalışıyor");
}
}
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 |