Şimdi yeniden yazma yasaları kavramını anlamak için, üç iş parçacığının çalıştığı bir program düşünelim.
Bir tanesi, dizinin tüm elemanlarının toplamını hesaplayan bir iş parçacığıdır.
Yani bu, birinci iş parçacığı tarafından yürütülen basit bir programdır.
Tamam.
Gördüğünüz gibi bu konunun amacı bu adi'nin tüm elemanlarının toplamını hesaplamaktır,
metin ve kırmızı renk kritik bölümü temsil eder.
Tamam.
Benzer şekilde, ADI'nin tüm unsurlarının çarpımını hesaplamak için kullanılan bir anlaşma vardır.
Yani bu, bir programın bu kod parçasını çalıştıran Treaty two'dur.
Ve son olarak, amacı ADI'nin her bir elemanının karesini hesaplamak ve üç elemanı güncellemek
olan bir işlem ağacı vardır.
Dolayısıyla, bir girdap olan bir yapıda aynı paylaşılan üzerinde eşzamanlı olarak çalışan üç tuzak 31, 32 ve
33 vardır.
Bu örnekte Eddy, üç iş parçacığı tarafından eşzamanlı olarak erişilen paylaşılan bir veri nesnesidir.
Şimdi, bu üç örnekte de görebileceğiniz gibi, bu iş parçacıklarının her biri normal bir muteksi kilitler.
Tartışmamıza başlamak için, bu özel muteksin günlüğe kaydedildiğini varsayalım.
Normal bir biyobankadır.
Tamam.
Dolayısıyla, bu iş parçacıklarının her biri kendi kritik bölümlerini ancak daha fazla saldırıyı kilitledikten sonra yürütür.
Ve bu tehditlerin her biri tamamlandığında, Murdoch'ların kilidini açarlar.
Şimdi çekici olanın bölgesel bir tehdit olduğunu görebilirsiniz.
Okuyucu ticareti, kritik bir bölümde yalnızca perakende satış işlemi gerçekleştiren ticaret anlamına gelir.
Yani burada değiştirilmeyen kritik bölümde sadece okunuyor ve bu nedenle ticaret anlaşması gerçek
bir tehdit.
Benzer şekilde, trajedi de bölgesel bir tehdittir, oysa D3 tehdidi bir adım hakkı olarak adlandırılır
çünkü T3 tehdidi işlemleri bir alan olan paylaşılan nesnenin değiştirilmesine yol açar.
Böylece, 31 92'nin sağ tarafta kurşun işlemleri gerçekleştirdiğini, sarılı 192'nin birbirini engellemeden izin verilmesi gerektiğini
görebilirsiniz.
Dolayısıyla, 381'in kritik bölüm 32'de yürütülürken aynı zamanda kritik bölümde de yürütülmesine
izin verilmesi gerekmez mi, çünkü bu tehditlerin hiçbiri bir nesneye ateş etmeyi değiştirmez
mi?
Tamam.
Richard Reid operasyonu çelişkili olmayan operasyonlardır.
Dolayısıyla, 31 ve 32'nin kendi kritik bölümlerinde aynı anda veya eşzamanlı olarak yürütülmesine
izin vermek çok mümkün ve yasaldır.
Oysa 333 bir yazardır.
Ve söz konusu sağ olduğunda, üçüncü ve yalnızca bir ve yalnızca bir sağ, belirli bir zamanda kritik
bir bölümde yürütülebilir.
Bu durumda, bu örnekte kritik bölümü korumak için normal sessiz eksenini kullandığımız
durum budur, bu tehditlerden herhangi biri herhangi bir zamanda kritik bölümde yürütülür.
Tamam.
Normal mod erişiminin işlevselliğinin zaten farkındayız, kritik bölüme yalnızca bir tehdidin girmesine
izin verir, ister okuma ister okuma veya yazma tehdidi olsun.
Dolayısıyla bu örnekte, bu iş parçacıklarından yalnızca biri, 31 iş parçacığı verisi, herhangi bir zamanda kritik
bölümde 383 yürütülür.
Normal muteks, okuyucu iş parçacıklarının bile kritik bölüm üzerinde aynı anda çalışmasına izin vermez.
Bu da bir programda performans iyileştirme kapsamı olduğu anlamına gelmektedir.
En azından reattached işleminin kendi kritik bölümlerinde aynı anda yürütülmesine izin verseydik büyük
bir performans artışı olurdu, çünkü bu işlemler gerçekten de çakışmayan işlemlerdir.
İşte bu nedenle yeniden yazma hakkı kilitleri getirilmiştir.
Yeniden yazma kilitleri birden fazla okuyucu tehdidinin aynı anda kritik bölümlere girmesine izin verir.
Pekala, inşaatçıların yalnızca sağa doğru uzanan demiryolu raylarına göre rahatladığını
unutmayın.
Ve tabii ki, kritik bölüme bir ve yalnızca bir binici ipliğinin girmesine izin verilir.
D3 izi kritik bölümde çalışıyorsa ve 383 bir sürücü iş parçacığı olduğundan, 382'nin a'da
engellenmesi gerekir. kritik bölümün noktası.
Tamam.
Kritik bölümde 33 numaralı yazar görev yaptığı sürece kritik bölüme girmelerine izin verilmeyecektir.
Dolayısıyla, aynı programı değiştirirsek ve normal biyo vergileri kullanmak yerine yeniden yazma kilitlerini kullanırsak,
durum tamamen farklı olacaktır.
Şimdi, her şeyden önce, okunan tıkanıklığın gerçek bir lot tarafından temsil edildiğini varsayalım.
Tamam.
Ve iş parçacığı aslında okuma, gülme veya yazma kilidini kullanarak bu doğru kilitlenebilirliği kilitleyebilir.
Yani bu, kilitleyecek iki tür kilit ve doğru kilit olduğu anlamına gelir.
Tamam.
Ancak, bu doğru tıkanıklığı açmak için, bu slaytta gösterdiğim API'nin sembolik olduğu bir API kilidini daha
fazla açmamız gerekiyor.
Yani, bir sonraki ders videosunda tartışacağımız gibi, yalnızca gerçek tehdit API'sini anlamak
amacıyla oradadırlar.
Ancak anlamak amacıyla, okuma hakkı kilidi değişkeninde okuma kilidini elde etmek için kullanılan bir API olduğunu
varsayın.
Ve okunabilir sağ kilit üzerinde sağ kilidi tercih etmek için kullanılan bir API sağ kilidi vardır.
Şimdi, bunu söyledikten sonra, trajedi ve trajedi iki ve trajedi üçün aynı anda
yürütülmesine izin verilirse, trajedi bir sağ kanat blok değişkeninde gridlock elde eder
ve kritik bölüme girer ve 32'yi yürütür, yine sağ blok değişkeninde kırmızı kilidi elde eder ve kritik bölümü yürütmesine
izin verilir.
Tamam.
Denenecek trajedi bloklama hakkı değişkeni üzerinde gerçek kilidi elde etmek olduğunda, aynı bloklama hakkı
değişkeni üzerinde T1 iş parçacığına zaten okuma kilidi verilmiş olmasına rağmen 382'ye kritik
bölüme erişim izni verildiğine dikkat edin.
Tamam.
Yani bu, birden fazla iş parçacığının aynı yazma, okuma günlüğü giyilebilir üzerinde okuma günlüğü verebileceği ve
aynı anda kritik bölümlere girebileceği anlamına gelirken, iş parçacığı üç tane yaptı, biri doğru okuma Kilidi
oranına doğru günlüğü elde etmeye çalışır.
Tam burada engellenmiş.
Neden engellendi Çünkü aynı değişken üzerinde gerçek kilitler sistemdeki bazı iş parçacıklarına verilmiştir.
Bu tehditler T1 ve T2'dir.
Tamam.
Bu da basitçe, uzaktan erişimde normal kilitler kullanıldığında, herhangi bir zamanda yalnızca bir iş parçacığının
işlem yapabileceği anlamına gelir.
Ancak okuma yazma günlüklerini kullanarak, 31 a. ikisi birbiriyle engellenmeden farklı kaydedilmiş görünümler üzerinde
paralel olarak yürütülebilir.
Bu da şu anda sahip olduğunuz büyük performans artışına yol açıyor, birden fazla okuyucu tehdidi aynı
anda paylaşılan kaynağa erişiyor.
Yeniden yazma kilitleri, birden fazla iş parçacığının kritik bölümde çalışmasına izin verir ve bu başlığın sahip olmak istediği
kilit türünü belirtmesine gerek yoktur.
Bu oldukça okunaklı Lock.
Pekala, kilit değişkenine kilitlen.
Bunu zaten FBI'da tartışmıştım.
Lock, blok değişkeni üzerindeki okuma kilidini elde etmek için kullanılır.
Ve FBI sağ günlüğü sadece sağdaki kilidi elde etmek için kullanılır.
Okuma Kilidi okunabilir.
Tamam.
Ve bu tehditlerin her biri kendi kritik bölümünü yürütmeyi bitirir.
Okunabilirliği engelleme hakkının kilidini açmak için bir API çağırmaları gerekir.
Bu nedenle, ister okuma kilidi ister sağ kilit olsun, günlüğümüzün işgal ettiği şey, kilidi açılmış bir API kullanılarak serbest bırakılacaktır.
Yeniden denenen kilitler bu şekilde yürür, sistemin performansını büyük ölçüde artırır ve kaynağa
erişmeye çalışan bir grup iş parçacığı vardır.
İşte retried bloklar bu şekilde yürür ve sistemdeki birden fazla root attract'in kritik bölüme girmesine ve birbirlerini
engellemeden aynı anda kritik bölümde çalışmasına izin verdiğimizde büyük bir performans artışı elde ederiz.
Kritik bölümde yürütüldüğünde sağ çeker, daha sonra başka hiçbir yazarın kritik bölüme girmesine
izin verilmez ve başka hiçbir okuyucu iş parçacığının da kritik bölüme girmesine izin verilmez.
Doğru.
Çelişkili bir işlemdir.
Ve doğru, Reid'in de çelişkili bir Hollywood Operasyonu var, Reid ve Reid çelişkili olmayan operasyonlar.
Tamam.
Dolayısıyla, D3 izi kritik bölümde yürütülüyorsa ve denenecek trajedi aynı yol üzerinde gerçek
bir kilit elde etmekse, aynı hak üzerinde bir okuma kilidi elde etmeye çalışırsa kilitlenmeye çalışılsa
bile ticaret verileri engellenecek ve çekici olacaktır.
Ayrıca engellenecektir.
Ve trajedi kritik bölümünü bitirdiğinde, bu trajedinin her ikisinin de, 192, kritik bölümlere
girmesine izin verilecek ve bu parçaların her ikisi de verilecek, sağda çok okunacak giyilebilir.
Tamam.