Java’da ConcurrentLinkedQueue

sametklou

Java’da ConcurrentLinkedQueue

Java'da ConcurrentLinkedQueue sınıfı, thread-safe bir kuyruk yapısı sunar. Bu sınıf, FIFO (İlk giren, İlk çıkar) yöntemine göre öğeleri tutar ve birden fazla thread'in aynı anda bu kuyruğa erişmesine izin verir.

ConcurrentLinkedQueue Kullanımı

ConcurrentLinkedQueue sınıfını kullanmak için öncelikle ilgili paketi import etmeliyiz:

import java.util.concurrent.ConcurrentLinkedQueue;

Daha sonra bir ConcurrentLinkedQueue örneği oluşturabiliriz:

ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<>();

Örnek bir ConcurrentLinkedQueue örneğine öğe eklemek için offer() metodu kullanılır:

queue.offer("A");
queue.offer("B");
queue.offer("C");

Kuyruktan öğe çıkarmak için poll() metodu kullanılır:

String element = queue.poll();

Kuyruğun başındaki öğeyi almak için peek() metodu kullanılır:

String firstElement = queue.peek();

ConcurrentLinkedQueue ile Thread Güvenliği

ConcurrentLinkedQueue sınıfı, birden fazla thread'in aynı anda ekleme ve çıkarma işlemleri yapabileceği şekilde tasarlanmıştır. Bu sayede uygulamaların thread güvenliği sağlanmış olur.

ConcurrentLinkedQueue<Integer> queue = new ConcurrentLinkedQueue<>();

// Birden fazla thread'ten ConcurrentLinkedQueue'ya erişim sağlayabilir
Runnable runnable = () -> {
    for (int i = 0; i < 1000; i++) {
        queue.offer(i);
    }
};

Thread thread1 = new Thread(runnable);
Thread thread2 = new Thread(runnable);

thread1.start();
thread2.start();

// ConcurrentLinkedQueue üzerinde işlemler yapılabilir
queue.poll();
queue.peek();

Java'da ConcurrentLinkedQueue sınıfı, thread güvenliği sağlayan ve performansı yüksek bir kuyruk yapısı sunar. Bu sayede çoklu thread ortamlarında güvenle kullanılabilir.