Evet, çocuklar, şimdi bir yeniden yazma kilidinin uygulanmasıyla başlayalım.
Şimdi size doğru okuma kilidini uygulamak için ihtiyacınız olan tüm üyelerin neler olduğunu göstereyim mi?
Ayrıca söz konusu üyeye sahip olmamızın ardındaki nedenin ne olduğunu da açıklayacağım.
Dolayısıyla ihtiyacımız olan ilk şey, normal yeni bir vergiye ihtiyacımız olduğudur.
Ve buna durum muteksi olarak bu muteks denir.
Sistemdeki birden fazla tehdit bu yeniden yazma yasası üzerinde bir işlem gerçekleştireceğinden,
bu muteksin amacı nedir, bunun üzerinde bir okuma günlüğü veya yazma günlüğü almaya çalışacağız.
Blog yeniden yapılandırılacak mı?
Pekala, işlemdeki talebe erişim izni vermemiz gerekip gerekmediğine karar vermek için bu günlük yapılarının
dahili üyelerini manipüle etmemiz gerekiyor.
Ve erişim izni verilirse, sağ sokak kilidinin durumunu, bu geri çekme kilidinin aslında
bir tehdide verildiğini yansıtacak şekilde güncellememiz gerekir.
Tamam.
Yani bu, sokağın iç durumunu yedi kez güncellemeye çalışacağımız anlamına gelir, doğru, çok daha
net yapılar ve bu nedenle, bir seferde yalnızca bir tehdidin sokaktaki durumu güncellemesini sağlayacak daha fazla
devlet vergisine ihtiyacımız var, doğru bir yapıda oturum açtı.
Tamam.
Yani basitçe söyleyebilirim ki, bu odanın durumunu manipüle etmek veya incelemek için bir muteks gereklidir,
doğru, karşılıklı olarak dışlayıcı bir şekilde bir yapıda kilitlenmiştir.
Tamam.
Kayıtlarımızda, muteks uygulaması da benzer bir mutekse sahipti, o zaman açıkça koşullu olarak başka bir üyeye
ihtiyacımız var.
Peki neden koalisyona ihtiyacımız var?
Çünkü bir iş parçacığı engellenmeli ve kilit mevcut değilse kritik bölüme girmesine izin verilmemelidir?
Tamam.
Dolayısıyla, devam eden ticareti engellemeye ihtiyaç duyulduğunda, her zaman bir koşul değişkenine ihtiyacınız vardır.
Koşul değişkeninin amacı budur.
O zaman ihtiyacımız olan bir diğer üye kaç adım?
Dediğim gibi, aynı anda kritik bölüme girebilecek tuzakların olabileceği ve serbest kalamayacağı bir kilidi
başarıyla elde ettik.
Kritik bölümde aynı anda çalışan beş okuyucu iş parçacığı olduğunu varsayalım.
O zaman bu değişken beşe güncellenmelidir.
Yani analog, belirli bir zamanda kritik bölümde kaç iş parçacığının çalıştığı anlamına gelir?
Açıkçası, kritik bölümde çalışan bir yazar iş parçacığı ise, bu değer her zaman bir
olacaktır.
Ancak okuyucu izleri söz konusu olduğunda, bunun nadiren bir değeri olabilir.
Mümkün olduğunca çok bilgiye sahip olmak her zaman iyidir.
Yapımızda kilitli olan okuma hakkımızın durumu hakkında ne kadar çok bilgiye sahip olursanız, o kadar çok
sayıda işlevi uygulayabileceksiniz veya bu bir yapıda günlüğe yazılacaktır.
Bu nedenle, kritik bölüme girmek için bekleyen bir dizi okuyucu iş parçacığını da saydığımı
görelim.
Diyelim ki böyle bir üye bekleyen bir okuyucu olsun, bu durumda bu konu basitçe kaç okuyucu iş parçacığının kilit mevcut
olmadığı için kritik bölüme girmek için beklediğini söyleyecektir.
Benzer şekilde, kilit mevcut olmadığı için kaç yazar parçasının kritik bölüme girmek için beklediğine ilişkin benzer bir
değişkene sahip olabilirsiniz.
Uygulamamızda size daha fazla işlevsellik veya mantık uygulamak veya bir yapıda kilitli okuma yazma
yapmak için bu bilgileri nasıl kullanabileceğinizi göstereceğim.
Bu yazılı ve oturum açılmış yapılarla ilgili olarak pistlerin durumu hakkında daha fazla bilgiye
sahip olursunuz.
Bu yol üzerinden ne kadar çok işlevsellik uygulayabilirseniz, günlük veri yapılarını yazın.
Şimdi son olarak bir Boolean değişkeni alayım, yani bu kilit şu anda bir okuyucu iş parçacığı tarafından mı günlüğe kaydedildi
yoksa bu güvenlik açığı değişkenlerinin her ikisinde de tuzağa düşen yazar tarafından mı günlüğe kaydedildi, bu sadece kilidin bu bayraklardan herhangi biri
tarafından günlüğe kaydedilmediği ve kilidin kullanılabilir olduğu anlamına geliyordu.
Ve son olarak, bu kilidin bir yazma iş parçacığı tarafından kaydedilmesi durumunda bir şeye daha ihtiyacınız
vardır ve herhangi bir zamanda kritik bölümde çalışan tam olarak yalnızca bir doğru iş parçacığı olacağını
zaten biliyoruz.
Biz de bu konuyu önbelleğe alacaktık. D. bu hayati ipliğin.
Açıkçası, kritik bölümde deneme ve yürütme hakkı yoksa bu değer sıfır veya null olacaktır.
Ancak, kritik bölüme aynı anda girebilecek birden fazla iş parçacığı olabileceğini
unutmayın.
Bu nedenle, kritik bölümde yürütülebilecek birçok kök alternatif olabileceğinden, tüm okuyucu izlerinden
iş parçacığını önbelleğe almamız mümkün değildir.
Ancak kritik bölümde yürütülecek tam olarak tek bir doğru iş parçacığı olacaktır.
Bu yazarın trajedisini de tahmin edelim.
Dolayısıyla bu değişken, kilit bir sürücü iş parçacığı tarafından kaydedilmişse, doğru yetkililerin hangisi olduğunu bilmemize
yardımcı olacaktır.
Tamam.
Böylece, bu yeniden yazmanın gerekli tüm üyelerini yapılarda kilitli olarak bildirmeyi tamamladık.
Şimdi mantığımızı uygulamak için bu üyelerin her birini nasıl kullanacağımızı göreceksiniz.
Bir sonraki görevimiz, tüm bu beş API'nin uygulanmasını sağlamaktır.
Tamam.
Bu konuyu bir sonraki derste tartışacağız William.