Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 30344|Yanıt: 2

[Kaynak] C# kilitli diş emniyeti

[Bağlantıyı kopyala]
Yayınlandı 13.06.2016 17:26:25 | | |

Kodunuz aynı anda birden fazla iş parçacığı çalışan bir süreçteyse, kodu aynı anda çalıştırıyor olabilir. Her çalıştırmanın sonucu tek bir iş parçacığındakiyle aynıysa ve diğer değişkenlerin değerleri beklenildiği gibiyse, iş parçacığı için güvenli olur.
Başka bir deyişle, bir sınıf veya program tarafından sağlanan arayüz iş parçacıkları için atomiktir veya birden fazla iş parçacığı arasında geçiş yapmak arayüzün yürütme sonucunda belirsizlik yaratmaz, bu da senkronizasyonu düşünmemize gerek olmadığı anlamına gelir.
İş parçacığı güvenliği sorunları hem küresel hem de statik değişkenlerden kaynaklanır.
Her iş parçacığı yalnızca küresel değişkenler ve statik değişkenler için okuma işlemleri içeriyorsa, ancak yazma işlemi yoksa, genel olarak bu küresel değişken iş parçacığı için güvenlidir; Birden fazla iş parçacığı aynı anda bir değişken üzerinde okuma ve yazma işlemleri yaparsa, iş parçacığı senkronizasyonu genellikle gereklidir, aksi takdirde iş parçacığı güvenliğini etkileyebilir.

Kilidin amacı, çoklu iş parçacıklı yürütme sırasında eşzamanlı işlemleri önlemektir ve referans tür kilit nesneleri, kilitli alanda aynı anda yalnızca bir iş parçacığına izin verir.

Lock yalnızca bir referans tipi değişkenini, yani bir adresi kilitleyebilir




Kilitli ve kilitsiz koşmanın sonuçları arasında bir fark vardır:

Kilitlendikten sonra: i değeri birer birer azalır, sıçramalar olmaz, tekrarlanan çıkış olmaz, ta ki 0 değerine kadar;

Kilitsiz: i'nin çıkış değeri atlar, kesintisiz azalır ve ayrıca -1 değer çıkışına sahip olabilir;

Sebep: Kilit eklendikten sonra, aynı anda sadece bir iş parçacığı kilitli alanda kodu çalıştırabilir ve her iki iş parçacığı sırayla çalıştırılır, böylece kesinti çıkmaz.




Önceki:Kullanıcı iptal edilmiş kayıt diyalogu (MS Visual Database Tools)
Önümüzdeki:Kayıtlı prosedürleri çalıştıran güzel bir DBHelper sınıfı
Yayınlandı 14.06.2016 10:53:36 |
 Ev sahibi| Yayınlandı 10.02.2022 09:18:58 |
.NET/C# Kilit Prensip Monitörü derinlemesine bir açıklama sunar
https://www.itsvse.com/thread-9633-1-1.html
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com