Thread
- Java kursu
- İleri seviye
- Ders 55/82
- 5 dk
Thread ile iş parçacığı oluşturmayı öğrenirsin.
Thread
Thread sınıfı, Java'da bir iş parçacığını temsil eder. Bir sınıf Thread'i kalıtım alıp run() yöntemini geçersiz kılarak yeni bir iş parçacığı tanımlayabilirsin.
class HelloThread extends Thread {
@Override
public void run() {
System.out.println("Hello");
}
}Bu sınıfın bir örneği start() çağrıldığında ayrı bir iş parçacığında çalışır. run() doğrudan çağrılırsa sıradan bir yöntem gibi çalışır; bu, hata ayıklama için yararlıdır. Java 21, platform iş parçacıkları ve sanal iş parçacıklarını destekler.
Thread yaşam döngüsü
Bir Thread'in temel durumları: NEW (oluşturuldu), RUNNABLE (çalışıyor), BLOCKED (bekliyor), WAITING (bekliyor) ve TERMINATED (bitti).
Thread t = new HelloThread();
System.out.println(t.getState());
// NEWstart() çağrılınca durum RUNNABLE olur. İş parçacığı bittiğinde TERMINATED olur. getState() ile anlık durumu öğrenebilirsin. Bu, eşzamanlı hataları ayıklamak için yararlıdır.
Uygulama HelloThread sınıfını yaz
Bir HelloThread sınıfı tanımla; Thread'i kalıtım alsın ve @Override ile run() yöntemini geçersiz kılsın. run() gövdesi System.out.println("Hello from thread") çağrısı yapsın. Bir ThreadDemo sınıfında main metodu yaz; HelloThread örneği oluştur ve run() yöntemini doğrudan çağır (başlatma).
Başlangıç kodu
// HelloThread sınıfını Thread kalıtımıyla tanımla
// run() yöntemini geçersiz kıl ve println çağır
// ThreadDemo sınıfında main yaz ve run() çağırÖrnek çözüm
class HelloThread extends Thread {
@Override
public void run() {
System.out.println("Hello from thread");
}
}
class ThreadDemo {
public static void main(String[] args) {
new HelloThread().run();
}
}Beklenen çıktı
Hello from thread
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Yeni bir Thread tanımlamak için hangi yöntem geçersiz kılınır?
- start()
- join()
- run() Doğru cevap
- sleep()
Açıklama: Thread'in gövdesi run() yönteminde tanımlanır.
2 Thread kalıtımını tamamla
class HelloThread ____ Thread {
@Override
public void run() {
System.out.println("Hello");
}
}
class HelloThread extends Thread {
@Override
public void run() {
System.out.println("Hello");
}
}
Açıklama: Thread'i kalıtım almak için extends kullanılır.
3 Thread yöntemlerini eşleştir
| Kavram | Anlamı |
|---|---|
start() |
Yeni iş parçacığını başlatır |
run() |
Görevin gövdesini tanımlar |
join() |
Bitmesini bekler |
sleep(ms) |
Belirli süre bekler |