Skip to content

TanerSaydam/ChannelExample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

.NET Channel Nedir?

Channel, .NET’in System.Threading.Channels yapısı üzerinden sağlanan, yüksek performanslı, thread-safe ve tamamen asenkron bir producer → consumer kuyruğudur.
Farklı bileşenlerin güvenli biçimde veri alışverişi yapmasını sağlayan, modern ve kilitsiz (lock-free) bir iş akışı mekanizmasıdır.


Ne İşe Yarar?

  • Üretici (producer) ile tüketici (consumer) arasındaki veri akışını güvenli biçimde yönetir.
  • Arka plan işleri, mesaj işleme, sıraya alma gibi süreçlerde kullanılır.
  • Asenkron çalışarak sistemi bloklamaz.
  • Çoklu üretici ve tek/çoklu tüketici yapıları sorunsuz destekler.
  • Backpressure (kuyruk dolunca üreticiyi bekletme) sağlar.
  • Diğer thread-safe queue yapılarından daha hızlıdır (lock-free optimizasyonlar).

Nasıl Çalışır?

  1. Producer, Channel’a veri yazar.
  2. Veri Channel içinde sıraya alınır.
  3. Consumer, Channel’dan veriyi okur ve işler.
  4. Üretici ve tüketici birbirinden tamamen bağımsız şekilde çalışır.

Bu yapı sayesinde iş yükü dengelenir ve yoğunluk altında sistem daha kararlı çalışır.


Event ile Farkı Nedir?

Özellik Event Channel
Çalışma şekli “Olay oluştu, hemen tetikle” “Veriyi sıraya al, doğru zamanda tüket”
Senkron / Asenkron Genelde senkron veya fire-and-forget Tamamen asenkron
İş garantisi Dinleyici yoksa olay kaybolur Veri hiçbir zaman kaybolmaz (WriteAsync bekler)
Queue mantığı Yok Var (producer → queue → consumer)
Yük yönetimi Trafik artarsa kontrol yok Backpressure ile üretici bekletilir
Kullanım amacı Olay bildirme İş akışı / job işleme / pipeline

Kısa fark özeti:

  • Event → Bildirim, “hemen çalıştır”.
  • Channel → Kuyruk, “sıraya al ve güvenli şekilde işle”.

Event anlık bir tetikleme mekanizmasıdır.
Channel ise sürdürülebilir, kontrollü bir iş akışı oluşturur.


About

.NET Channel örnek kullanım reposu

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages