Evet arkadaşlar, şimdi bu eylemde Özyinelemeli Metaksas'ı ele alacaktık.
İlk olarak, özyinelemeli mutekslerin tam olarak ne olduğunu ve özyinelemeli mutekslerin nerede
kullanılacağını ve neden politikanın dahili özyinelemeli muteks API'lerini tartışacağımızı anlayacaktık.
Yani posix standardı özyinelemeli kip erişimi için yerleşik destek sağlar.
Ve özyinelemeli sessize alma erişiminin dahili desteğini tartıştıktan sonra, normal sessize alma eylemlerini kullanarak
kendi özyinelemeli sessize alma eylemlerinizi nasıl uygulayabileceğinizi tartışacağız.
Bu alıştırma yardımcı olacaktır.
Örneğin, kendiniz uygulayacak olsaydınız, özyinelemeli sessiz erişimin nasıl uygulanabileceğini öğrenmenizi
sağlayacaktır.
Bir X Y Z programlama dilinde çalıştığınızı ve bu dilin normal kök erişimi desteği olduğunu
ancak özyinelemeli sessiz eksen desteği olmadığını varsayalım.
O zaman kendi özyinelemeli sessiz ekseninizi uygulayabilecek bir konumda olmalısınız.
Pekala, AR'nin nasıl geliştirileceğini öğrenmek, perde arkasında çalışan şeyleri uygulamak her zaman iyidir.
Şimdi özyinelemeli mod eksenlerinin ne olduğunu tartışalım.
Dolayısıyla, bir iş parçacığı tarafından zaten günlüğe kaydedilmiş olan normal bir muteksin aynı iş parçacığı tarafından tekrar günlüğe kaydedilemeyeceğini
biliyoruz.
Aynı iş parçacığı tarafından zaten kaydedilmiş normal muteksin kilitlenmeye çalışılması kilitlenmeye yol açar.
Tamam.
Örneğin, 381 T1 cihazınız var ve çalışıyor.
Ve bir noktada bir kilit elde ettiğini varsayalım.
Honor Maddox.
Tamam.
Diyelim ki bu AM normal değirmen vergisini temsil ediyor, sonra ticaretiniz devam ediyor ve bazı işler yapıyorsunuz ve bazı
programlama hataları yapıyorsunuz.
Sanırım sizin Tier one'ınız da aynı API'yi çağırıyor.
Yani, aynı hataları tekrar kaydetmeye çalışır.
Şimdi, bu noktada, iş parçacığınız kilitlenme durumuna girecektir.
Birincisi, bu normal bir muteks, normal bir muteks üzerinde başarılı bir şekilde kilit elde etmiş bir iş parçacığı,
aynı Murdock'lar üzerinde tekrar kilit elde etmeye çalışırsa kilitlenme durumuna girecektir.
Pekala, özyinelemeli muteks bir şey değildir, ancak ruh hali eksenlerinde değil gibi yürürler.
Tek fark, IMU d'acces'in aynı iş parçacığı tarafından istediği sayıda
yeniden kaydedilebilmesidir.
Tamam.
Bu örnekte, bu kolun Norman muteksi yerine Murdock'un muteksini temsil ettiğini varsayalım, bu nedenle 31 burada
özyinelemeli muteksi kilitler ve iş parçacığınız başka bir iş yapmaya devam eder.
Ve bu noktada, tehdidiniz yine aynı kaydı kilitliyor.
Bazı yeni parçalar ve tekrar denenirsiniz, başka bir iş yapmak için ilerlersiniz.
Dolayısıyla, bu noktada iş parçacığınızın özyinelemeli muteks üzerinde tekrar bir kilit elde etmeye çalışmasına
rağmen kilitlenme durumuna girmediğini görebilirsiniz.
İşte bu yüzden bazı vergiler gerileyicidir, mutex aynı iş parçacığı tarafından tekrar tekrar günlüğe kaydedilebilir.
Ve unutmayın, bir iş parçacığının kilidi, kaydedildiği kadar açılmalıdır.
Dolayısıyla, muteksi tamamen serbest bırakmak için, bir iş parçacığının aynı dizinin kilidini oturum açtığı kadar açması
gerekir.
Bu örnekte, T1 iş parçacığı Cimarex kaydı üzerindeki kilidi iki kez elde etmiştir, bu nedenle T1 iş parçacığının bir
FBI boncuk iş parçacığını çağırması gerektiği anlamına gelir.
Muteks kilidini aç.
Kayıtlarda, Samuel kayıtları serbest bırakmak için iki kez hareket eder, Cimarex tamamen bir şekilde programımızda cimarex kayıtlarını
nasıl tanımlayabileceğimizi ve kullanabileceğimizi açıklamamıza izin verir.
Dolayısıyla, muteks değişkenindeki kayıtları bildirmek için, muteks izlenmesi gereken aynı veri türünü kullanırız.
Tamam.
Tek fark, öznitelik değişkenini tanımlamamız gerektiğidir ve bu öznitelik değişkeni, bu belirli muteksin
aslında özyinelemeli bir karışım olduğunu belirtmek için kullanılabilir.
Dolayısıyla, bu öznitelik değişkenini işlem öncesi muteks özniteliğini ve IT API'sini kullanarak başlattınız ve bu öznitelik
içinde, bu belirli sabiti kullanarak orta güvertenin özyinelemeli özelliğini ayarladınız.
Dolayısıyla, özyinelemeli Peter Mutex, genellikle P Mutacoes öznitelik kümesi türü API'sinde belirtilen
sabit bir tanımlayıcıdır, böylece API'de denenmiş mutex kullanarak, öznitelikleri Milbank'larımızla bağlayabiliriz ve bu öznitelikten
beri AutoML Texas'ın doğada özyinelemeli olduğunu tanımladık.
Bu nedenle, bu özel muteks özyinelemeli olacaktır.
Tamam.
Bunlar, programınızdaki özyinelemeli Maddox'ları tanımlamak ve bildirmek için kullanmanız gereken bir
grup API'dir.
Gördüğünüz gibi standartlar siyaseti, özyinelemeli Metaxas'a yerleşik bir destek sağlamaktadır.
Özyinelemeli sessiz erişim üzerinde çalışan kilitleme ve kilit açma API'leri, hız iş parçacığı, muteks kilidi
ve muteks kilidini açmayı denediğimizi söyleyecektir.
Ancak şimdi, bu özyinelemeli Maddox'un işlevselliğini anladıktan sonra, basit bir soru ortaya çıkıyor: Bir
iş parçacığı neden ilk etapta bir muteksi birden çok kez kilitleme ihtiyacı duyar?
Tamam.
Neden belirli bir X'i aynı iş parçacığı tarafından birden çok kez kilitlemeye çalışıyorsunuz?
Bu yüzden bir sonraki derste size göstermeme izin verin VİDEO Pratik bir örnek Büyük uygulamalar içindeyiz.
Bir programcının tekrar tekrar aynı yollarda kilitlenip kalması mümkün olabilir.