WEBVTT

00:07.160 --> 00:13.930
Evet arkadaşlar, artık özyinelemeli yeni vergilerin ve Holokost'un amacının ne olduğunu ve vergilerin POSIX kütüphanesi

00:13.940 --> 00:21.560
tarafından sağlanan gerileyen vergilerin dahili desteğini kullanarak bir programda kullanılabileceğini açıkça anladık.

00:22.040 --> 00:27.830
Şimdi kendi Recursive More versiyonumuzu uygulayarak recursive more vergileri hakkında daha fazla bilgi edinelim.

00:28.940 --> 00:29.360
Tamam.

00:29.630 --> 00:34.790
Bir şeyler öğrenmek için tekerleği yeniden icat etmek her zaman iyi bir fikirdir.

00:35.390 --> 00:41.090
Bu nedenle yapacağımız şey, özyinelemeli mod XD adı verilen kendi veri yapımızı

00:41.090 --> 00:49.460
uygulayacağız ve işlevsellik açısından bu özyinelemeli Murdock'lar üzerinde işlem yapan aşağıdaki beş API'yi

00:49.460 --> 00:57.680
uygulayacağız ve özyinelemeli Murdock'ların uygulanması, dahili özyinelemeli muteksin sağladığı işlevsellikle

00:57.680 --> 01:01.970
tam olarak eşleşmelidir.

01:02.360 --> 01:04.440
Neden bir POS XP iş parçacığı kütüphanesi?

01:05.390 --> 01:09.350
Şimdi tüm kısıtlamaların neler olduğunu listeleyeyim.

01:09.350 --> 01:12.080
Özellikler özyinelemeli uygulamalardır.

01:12.080 --> 01:14.450
Miraz buna uymak zorunda.

01:15.200 --> 01:22.550
Birincisi, 21'in özyinelemeli muteks uygulamasında olan cimarex kaydı üzerinde bir kilidi varsa,

01:22.550 --> 01:31.280
sürecin başka herhangi bir iş parçacığı bu özyinelemeli metin üzerinde bir kilit elde etmeye çalışırsa ve söz konusu iş

01:31.280 --> 01:33.890
parçacığı hemen engellenmelidir.

01:34.520 --> 01:34.940
Tamam.

01:35.180 --> 01:41.120
Yani bu, ikinci kuraldan daha fazla verginin ilk ve en belirgin özelliğidir, eğer

01:41.120 --> 01:44.150
yürütmeye devam etmeye hazırsanız.

01:45.240 --> 01:51.480
Sadece anlaşma, bu konuda zaten bir kilidi elinde tutan Cimarex, bu kayıttaki tüm kilitleri

01:51.480 --> 01:53.740
serbest bıraktığında Cimarex.

01:54.240 --> 01:54.630
Tamam.

01:54.960 --> 02:01.170
Dolayısıyla, yalnızca Cimarex üzerinde bir kilit tutan anlaşma, bu özyinelemeli Murdock'lar üzerindeki tüm kilitleri

02:01.170 --> 02:07.980
serbest bıraktığında, yalnızca bu istek üzerine bir kilit vermek için bekleyen diğer herhangi bir iş parçacığı, muteks yürütmeye

02:07.980 --> 02:09.990
devam etmelidir.

02:10.800 --> 02:11.190
Tamam.

02:11.850 --> 02:17.760
Şimdi, riskle ilgili nokta, muteks tıpkı diğer normal modlar gibi olduğu için, erişimin karşılıklı dışlamayı

02:17.880 --> 02:20.100
garanti etmesi gerektiğidir.

02:20.430 --> 02:27.150
Bu zirve vergileri tarafından korunan kritik bölüm içinde herhangi bir zamanda tehditlerin

02:27.150 --> 02:28.980
yürütülmesi gerekmez.

02:29.970 --> 02:36.030
O zaman diyelim ki puan numarası, uyarı izi uyarı izi, kayıt cimarex'ine zaten bir kilit vermiş olan

02:36.030 --> 02:37.890
bir tehdit anlamına gelir.

02:38.670 --> 02:45.570
Bu nedenle, Cimarex'i serbest bırakmak için sadece tad'ın kilit çağrıları kadar kilit açma çağrısı yapması gerekir.

02:46.380 --> 02:46.800
Tamam.

02:47.100 --> 02:54.390
Ve beşinci madde, herhangi bir tehdit zaten kilidi açılmış bir Ruger Cimarex'in kilidini açmaya çalışırsa, programınızın

02:54.810 --> 03:00.660
bunun geliştiricinin de yaptığı anlamına geldiğini iddia etmesi gerektiğini söylüyor.

03:00.660 --> 03:08.280
Bu bir grup API'nin yanlış kullanımı, bu API'lerin uygulanmasında bir hata olmasıdır, bu nedenle programınız

03:08.280 --> 03:16.290
bu API'lerin yanlış kullanımı olduğunda veya bu API'lerin yanlış bir uygulaması olduğunda assert etmelidir.

03:18.090 --> 03:22.860
Dolayısıyla bir sonraki derste, bu acil dış yapıyı nasıl tanımlayabileceğimizi

03:22.890 --> 03:30.720
ve bu konuda benzer eylemler üzerinde işlem yapan bu dört API'nin her birini nasıl uygulayabileceğimizi tartışacağız.

03:31.380 --> 03:37.020
Ayrıca size titiz Cimarex uygulamamızı test edeceğimiz demo programını da göstereceğim.

03:37.560 --> 03:40.140
Bu yüzden tekerlekli yükleyiciyi yeniden icat edeceğiz.

03:40.150 --> 03:45.480
Özyinelemeli muteks işlevi zaten var, sonunda altı iş parçacığı kütüphanesi yayınlayacak.

03:45.780 --> 03:52.980
Tekerleği yeniden icat edeceğiz, böylece özel iş parçacığı senkronizasyon veri yapılarının tamamen sıfırdan nasıl

03:52.980 --> 03:55.680
oluşturulabileceğini öğrenebiliriz.

03:56.910 --> 04:03.120
Ve multithreading Bible slash recursive mutex olan aşağıdaki botta özyinelemeli sessiz

04:03.120 --> 04:09.660
erişimin uygulanmasını bulabilirsiniz ve uygulama Slashdot'ta sunulan dosyada mevcuttur

04:09.660 --> 04:16.710
Bakın ve test edin, ortalama işlevi içeren kaynaktır ve özyinelemeli sessizliğin uygulanmasını test

04:16.710 --> 04:17.520
eder.

04:18.540 --> 04:18.930
Tamam.
