Middle
C#'ta Interlocked nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Interlocked, System.Threading isim alanında bulunan ve birden fazla iş parçacığı tarafından paylaşılabilen değişkenler için atomik işlemler sağlayan bir sınıftır. Atomik işlem, tamamen yürütülen veya hiç yürütülmeyen, farklı iş parçacıklarından gelen eşzamanlı erişimlerde bile garantili olan işlemdir.
Interlocked tarafından sağlanan temel atomik işlemler şunlardır:
Increment:intveyalongtüründeki bir değişkenin değerini atomik olarak artırır.Decrement:intveyalongtüründeki bir değişkenin değerini atomik olarak azaltır.Add:intveyalongtüründeki bir değişkene atomik olarak bir değer ekler.Exchange: Bir değişkenin değerini atomik olarak yeni bir değerle değiştirir ve önceki değeri döner.int,long,float,doubleve referans türleri dahil olmak üzere çeşitli türler için desteklenir.CompareExchange: Bir değişkenin değerini, belirli bir değerle atomik olarak karşılaştırır. Eğer eşitse, değişkenin değerini yeni bir değerle değiştirir. Önceki değeri döner. Çeşitli türler için desteklenir.
Interlocked kullanımı, farklı iş parçacıklarından gelen ortak değişkenlerle çalışırken ortaya çıkabilecek veri yarışlarını (data races) önlemeye yardımcı olur. Bu, kodu daha güvenilir ve performanslı hale getirir, çünkü Interlocked genellikle mutex veya kilit kullanmadan atomik erişim sağlar.
Interlocked.Increment kullanım örneği:
// Birden fazla iş parçacığının erişeceği değişken
private int _counter = 0;
public void Method1()
{
// Güvenli atomik artırma
Interlocked.Increment(ref _counter);
}
public void Method2()
{
// Güvenli atomik artırma
Interlocked.Increment(ref _counter);
}