CodeBlanks Logo Icon CodeBlanks

ConcurrentStack

C# kursu · Uzman · Ders 27/47

ConcurrentStack ile iş parçacığı güvenli yığını öğrenirsin.

ConcurrentStack

ConcurrentStack<T>, iş parçacığı güvenli son-giren-ilk-çıkar (LIFO) yığınıdır. Push ile tepeye ekler, TryPop ile tepeden çıkarırsın. İç yapı yine kilit gerektirmeyen (lock-free) bir bağlı listedir.

Geri izleme (backtracking), geri al (undo) veya son işlenen önce işlenecek şekilde görev yığınları için uygundur. Aynı iş parçacığı ekleyip çıkardığında, yerel tepe önbelleği sayesinde çok hızlıdır.

PushRange ve TryPopRange

PushRange(T[] items) birden çok öğeyi tek seferde tepeye ekler; her birini ayrı ayrı Push etmekten daha verimlidir. TryPopRange(T[] items) ise bir diziyi dolduracak kadar öğeyi tepeden çıkarır.

Toplu işlemlerde bu metotlar içerideki eşzamanlama yükünü azaltır. Tek öğe işlemleri için Push ve TryPop yeterlidir.

Uygulama Yığına ekle ve boşalt

Aşağıdaki stack boş. Push ile üç öğe ekle: "1", "2", "3". Sonra while (stack.TryPop(out var item)) döngüsüyle her öğeyi yazdır. LIFO olduğu için çıktı 3, 2, 1 sırasında olur.

Örnek çözümü göster
stack.Push("1"); stack.Push("2"); stack.Push("3"); Sonra while (stack.TryPop(out var item)) Console.WriteLine(item);
Örnek çözüm:
using System;
using System.Collections.Concurrent;

class Program
{
    static void Main()
    {
        var stack = new ConcurrentStack<string>();
        stack.Push("1");
        stack.Push("2");
        stack.Push("3");
        while (stack.TryPop(out var item))
        {
            Console.WriteLine(item);
        }
    }
}

Kendini test et

  1. Yığın metotlarını eşleştir

    Push
    Tepeye ekle
    TryPop
    Tepeden çıkar
    TryPeek
    Çıkarmadan tepeye bak
  2. Push çağrısını tamamla

    stack.____;
    Cevabı göster
    stack.Push("ilk");
  3. ConcurrentStack'in sıralama davranışı nedir?

    • LIFO (son giren ilk çıkar)
    • FIFO (ilk giren ilk çıkar)
    • Sıralı (sorted)
    • Rastgele (unordered)
    Cevabı göster

    LIFO (son giren ilk çıkar) — Doğru. ConcurrentStack LIFO sıralar: son eklenen ilk çıkar.

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