WEBVTT

00:07.170 --> 00:11.160
Evet arkadaşlar, şimdi bu eylemde Özyinelemeli Metaksas'ı ele alacaktık.

00:12.090 --> 00:17.700
İlk olarak, özyinelemeli mutekslerin tam olarak ne olduğunu ve özyinelemeli mutekslerin nerede

00:17.700 --> 00:24.980
kullanılacağını ve neden politikanın dahili özyinelemeli muteks API'lerini tartışacağımızı anlayacaktık.

00:25.440 --> 00:30.780
Yani posix standardı özyinelemeli kip erişimi için yerleşik destek sağlar.

00:31.410 --> 00:37.410
Ve özyinelemeli sessize alma erişiminin dahili desteğini tartıştıktan sonra, normal sessize alma eylemlerini kullanarak

00:37.710 --> 00:42.930
kendi özyinelemeli sessize alma eylemlerinizi nasıl uygulayabileceğinizi tartışacağız.

00:43.440 --> 00:44.840
Bu alıştırma yardımcı olacaktır.

00:44.850 --> 00:51.330
Örneğin, kendiniz uygulayacak olsaydınız, özyinelemeli sessiz erişimin nasıl uygulanabileceğini öğrenmenizi

00:51.330 --> 00:52.560
sağlayacaktır.

00:53.130 --> 00:59.100
Bir X Y Z programlama dilinde çalıştığınızı ve bu dilin normal kök erişimi desteği olduğunu

00:59.100 --> 01:03.450
ancak özyinelemeli sessiz eksen desteği olmadığını varsayalım.

01:03.930 --> 01:07.410
O zaman kendi özyinelemeli sessiz ekseninizi uygulayabilecek bir konumda olmalısınız.

01:07.650 --> 01:15.570
Pekala, AR'nin nasıl geliştirileceğini öğrenmek, perde arkasında çalışan şeyleri uygulamak her zaman iyidir.

01:16.410 --> 01:19.080
Şimdi özyinelemeli mod eksenlerinin ne olduğunu tartışalım.

01:19.470 --> 01:26.460
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

01:26.460 --> 01:27.090
biliyoruz.

01:27.670 --> 01:33.180
Aynı iş parçacığı tarafından zaten kaydedilmiş normal muteksin kilitlenmeye çalışılması kilitlenmeye yol açar.

01:33.690 --> 01:34.110
Tamam.

01:34.560 --> 01:37.830
Örneğin, 381 T1 cihazınız var ve çalışıyor.

01:38.160 --> 01:43.770
Ve bir noktada bir kilit elde ettiğini varsayalım.

01:44.880 --> 01:46.320
Honor Maddox.

01:47.580 --> 01:48.010
Tamam.

01:48.240 --> 01:54.000
Diyelim ki bu AM normal değirmen vergisini temsil ediyor, sonra ticaretiniz devam ediyor ve bazı işler yapıyorsunuz ve bazı

01:54.510 --> 01:56.310
programlama hataları yapıyorsunuz.

01:56.530 --> 02:00.080
Sanırım sizin Tier one'ınız da aynı API'yi çağırıyor.

02:01.950 --> 02:04.830
Yani, aynı hataları tekrar kaydetmeye çalışır.

02:05.770 --> 02:10.720
Şimdi, bu noktada, iş parçacığınız kilitlenme durumuna girecektir.

02:11.470 --> 02:17.980
Birincisi, bu normal bir muteks, normal bir muteks üzerinde başarılı bir şekilde kilit elde etmiş bir iş parçacığı,

02:18.370 --> 02:25.030
aynı Murdock'lar üzerinde tekrar kilit elde etmeye çalışırsa kilitlenme durumuna girecektir.

02:26.320 --> 02:32.350
Pekala, özyinelemeli muteks bir şey değildir, ancak ruh hali eksenlerinde değil gibi yürürler.

02:32.350 --> 02:39.130
Tek fark, IMU d'acces'in aynı iş parçacığı tarafından istediği sayıda

02:39.130 --> 02:42.790
yeniden kaydedilebilmesidir.

02:43.960 --> 02:44.380
Tamam.

02:44.710 --> 02:51.820
Bu örnekte, bu kolun Norman muteksi yerine Murdock'un muteksini temsil ettiğini varsayalım, bu nedenle 31 burada

02:51.820 --> 02:57.700
özyinelemeli muteksi kilitler ve iş parçacığınız başka bir iş yapmaya devam eder.

02:58.390 --> 03:03.520
Ve bu noktada, tehdidiniz yine aynı kaydı kilitliyor.

03:03.520 --> 03:08.710
Bazı yeni parçalar ve tekrar denenirsiniz, başka bir iş yapmak için ilerlersiniz.

03:09.160 --> 03:16.720
Dolayısıyla, bu noktada iş parçacığınızın özyinelemeli muteks üzerinde tekrar bir kilit elde etmeye çalışmasına

03:16.720 --> 03:20.920
rağmen kilitlenme durumuna girmediğini görebilirsiniz.

03:21.640 --> 03:28.300
İşte bu yüzden bazı vergiler gerileyicidir, mutex aynı iş parçacığı tarafından tekrar tekrar günlüğe kaydedilebilir.

03:28.720 --> 03:33.430
Ve unutmayın, bir iş parçacığının kilidi, kaydedildiği kadar açılmalıdır.

03:34.150 --> 03:41.500
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ı

03:41.500 --> 03:42.370
gerekir.

03:42.910 --> 03:50.020
Bu örnekte, T1 iş parçacığı Cimarex kaydı üzerindeki kilidi iki kez elde etmiştir, bu nedenle T1 iş parçacığının bir

03:50.020 --> 03:54.130
FBI boncuk iş parçacığını çağırması gerektiği anlamına gelir.

03:55.230 --> 03:56.640
Muteks kilidini aç.

03:57.770 --> 04:04.310
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ı

04:04.310 --> 04:08.960
nasıl tanımlayabileceğimizi ve kullanabileceğimizi açıklamamıza izin verir.

04:09.560 --> 04:15.910
Dolayısıyla, muteks değişkenindeki kayıtları bildirmek için, muteks izlenmesi gereken aynı veri türünü kullanırız.

04:17.090 --> 04:17.540
Tamam.

04:17.870 --> 04:24.110
Tek fark, öznitelik değişkenini tanımlamamız gerektiğidir ve bu öznitelik değişkeni, bu belirli muteksin

04:24.110 --> 04:28.970
aslında özyinelemeli bir karışım olduğunu belirtmek için kullanılabilir.

04:29.600 --> 04:38.000
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

04:38.000 --> 04:45.200
içinde, bu belirli sabiti kullanarak orta güvertenin özyinelemeli özelliğini ayarladınız.

04:45.740 --> 04:53.300
Dolayısıyla, özyinelemeli Peter Mutex, genellikle P Mutacoes öznitelik kümesi türü API'sinde belirtilen

04:53.300 --> 05:03.050
sabit bir tanımlayıcıdır, böylece API'de denenmiş mutex kullanarak, öznitelikleri Milbank'larımızla bağlayabiliriz ve bu öznitelikten

05:03.050 --> 05:08.120
beri AutoML Texas'ın doğada özyinelemeli olduğunu tanımladık.

05:08.390 --> 05:11.420
Bu nedenle, bu özel muteks özyinelemeli olacaktır.

05:12.470 --> 05:12.890
Tamam.

05:13.880 --> 05:20.360
Bunlar, programınızdaki özyinelemeli Maddox'ları tanımlamak ve bildirmek için kullanmanız gereken bir

05:20.360 --> 05:21.260
grup API'dir.

05:21.680 --> 05:28.640
Gördüğünüz gibi standartlar siyaseti, özyinelemeli Metaxas'a yerleşik bir destek sağlamaktadır.

05:29.120 --> 05:34.430
Özyinelemeli sessiz erişim üzerinde çalışan kilitleme ve kilit açma API'leri, hız iş parçacığı, muteks kilidi

05:34.430 --> 05:37.190
ve muteks kilidini açmayı denediğimizi söyleyecektir.

05:38.180 --> 05:44.360
Ancak şimdi, bu özyinelemeli Maddox'un işlevselliğini anladıktan sonra, basit bir soru ortaya çıkıyor: Bir

05:44.360 --> 05:49.130
iş parçacığı neden ilk etapta bir muteksi birden çok kez kilitleme ihtiyacı duyar?

05:49.940 --> 05:50.390
Tamam.

05:50.600 --> 05:57.380
Neden belirli bir X'i aynı iş parçacığı tarafından birden çok kez kilitlemeye çalışıyorsunuz?

05:57.920 --> 06:04.760
Bu yüzden bir sonraki derste size göstermeme izin verin VİDEO Pratik bir örnek Büyük uygulamalar içindeyiz.

06:04.760 --> 06:10.340
Bir programcının tekrar tekrar aynı yollarda kilitlenip kalması mümkün olabilir.
