Sunday, November 21, 2010

System.Threading Namespace inde bulunan Interlocked sınıfını hızlıca inceleyelim.

Lock kullanmak aslında pek de istenilen bir durum değildir. Mümkün olduğunca Lock lardan kaçınmak istesek de zaman zaman mecbur kaldığımız olur. Multithread uygulamalarda paylaşmamız gereken ortak değişkenler olabilir, böyle durumlarda Lock kullanmak gerçekten maliyetli olabiliyor. E hal böyleyken de uygulamanın büyüklüğüne göre ciddi performans sorunları ile boğuşmak zorunda kalabiliyoruz. Uzmanların tavsiyesi ise Lock yerine Interlocked kullanmak :)

Şunu da hatırlatmadan geçmeyelim, çok iterasyonlu bir döngüde Interlocked kullanmak, tek bir Lock içindeki döngüden daha az verimli olabilir.

Performans testi kodlarımız ise şöyle :

Gerçekten de Interlocked ın daha kısa sürede işini bitirdiğini görebiliyoruz. Interlocked in kullanımına dair birkaç örnek kodcuk da şöyle idi :

Basit bir konsol uygulaması üzerinde uygulayıp siz de test edebilirsiniz.

Sunday, November 21, 2010 3:28:24 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]  | 

© Copyright 2009, Süleyman PETEK