CodeBlanks Logo Icon CodeBlanks

Selector

Selector ile çoklu kanal yönetimini öğrenirsin.

Selector ile çoklama

Selector (seçici), tek bir iş parçacığıyla birden çok kanalı izlemeyi sağlar. Kanallar SelectionKey ile seçiciye kaydedilir; select çağrısı hazır olan kanalları bekler. Bu, çoklama (multiplexing) olarak bilinir.

Örnek: bir sunucu, yüzlerce istemci kanalını tek bir Selector ile izleyebilir. Her kanal bloklamayan moda alınır ve seçiciye kaydedilir. select geri döndüğünde hazır kanalların anahtarları işlenir. Bu, her istemci için ayrı iş parçacığı açmaktan çok daha verimlidir.

Bloklamayan kanal

Selector kullanmak için kanalın bloklamayan (non-blocking) modda olması gerekir. channel.configureBlocking(false) bunu sağlar. Ardından kanal bir seçiciye register ile kaydedilir ve hangi olayları izleyeceği belirtilir.

Örnek: channel.register(sel, SelectionKey.OP_READ). Bu, kanalın okumaya hazır olmasını bekler. select döndüğünde, hazır anahtarlar üzerinden channel alınır ve veri işlenir. Bloklayıcı bir kanal seçiciye kaydedilemez; bu yüzden mod ayarı zorunludur.

Uygulama Selector aç ve durumunu yazdır

Selector.open() ile bir seçici aç ve sel değişkenine ata. sel.isOpen() sonucunu System.out.println ile yazdır. Sonra sel.close() ile kapat.

Başlangıç kodu

Main.java
// Selector aç
// isOpen ile durum yazdır
// kapat

Örnek çözüm

Main.java
import java.nio.channels.Selector;

public class SelectorDemo {
    public static void main(String[] args) throws Exception {
        Selector sel = Selector.open();
        System.out.println(sel.isOpen());
        sel.close();
    }
}

Beklenen çıktı

true

Soru ve cevaplar

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

1 Selector.open çağrısını tamamla

Soru
Selector sel = Selector.____();
Cevap
Selector sel = Selector.open();

Açıklama: Selector.open yeni bir seçici açar.

2 Selector kavramlarını eşleştir

Kavram Anlamı
Selector.open Seçici açar
select Olay bekler
isOpen Durum sorar
close Seçici kapatır

3 Selector neyi sağlar?

  • Dosya silme
  • Tek örnek
  • Dizgi kodlama
  • Tek iş parçacığıyla çok kanal izleme Doğru cevap

Açıklama: Selector, tek iş parçacığıyla çok kanalı izler.

Uzman bölümündeki tüm dersler