WEBVTT

00:07.110 --> 00:10.620
Evet, çocuklar, şimdi bir yeniden yazma kilidinin uygulanmasıyla başlayalım.

00:11.190 --> 00:17.280
Şimdi size doğru okuma kilidini uygulamak için ihtiyacınız olan tüm üyelerin neler olduğunu göstereyim mi?

00:18.030 --> 00:22.680
Ayrıca söz konusu üyeye sahip olmamızın ardındaki nedenin ne olduğunu da açıklayacağım.

00:23.520 --> 00:28.770
Dolayısıyla ihtiyacımız olan ilk şey, normal yeni bir vergiye ihtiyacımız olduğudur.

00:30.540 --> 00:33.360
Ve buna durum muteksi olarak bu muteks denir.

00:34.140 --> 00:40.770
Sistemdeki birden fazla tehdit bu yeniden yazma yasası üzerinde bir işlem gerçekleştireceğinden,

00:40.770 --> 00:48.780
bu muteksin amacı nedir, bunun üzerinde bir okuma günlüğü veya yazma günlüğü almaya çalışacağız.

00:49.970 --> 00:51.570
Blog yeniden yapılandırılacak mı?

00:52.430 --> 00:58.700
Pekala, işlemdeki talebe erişim izni vermemiz gerekip gerekmediğine karar vermek için bu günlük yapılarının

00:58.700 --> 01:02.480
dahili üyelerini manipüle etmemiz gerekiyor.

01:02.900 --> 01:10.310
Ve erişim izni verilirse, sağ sokak kilidinin durumunu, bu geri çekme kilidinin aslında

01:10.310 --> 01:16.340
bir tehdide verildiğini yansıtacak şekilde güncellememiz gerekir.

01:17.120 --> 01:17.510
Tamam.

01:19.010 --> 01:24.530
Yani bu, sokağın iç durumunu yedi kez güncellemeye çalışacağımız anlamına gelir, doğru, çok daha

01:24.530 --> 01:31.370
net yapılar ve bu nedenle, bir seferde yalnızca bir tehdidin sokaktaki durumu güncellemesini sağlayacak daha fazla

01:31.370 --> 01:35.540
devlet vergisine ihtiyacımız var, doğru bir yapıda oturum açtı.

01:36.420 --> 01:36.780
Tamam.

01:37.990 --> 01:43.450
Yani basitçe söyleyebilirim ki, bu odanın durumunu manipüle etmek veya incelemek için bir muteks gereklidir,

01:43.450 --> 01:48.370
doğru, karşılıklı olarak dışlayıcı bir şekilde bir yapıda kilitlenmiştir.

01:52.550 --> 01:52.940
Tamam.

01:53.420 --> 02:02.480
Kayıtlarımızda, muteks uygulaması da benzer bir mutekse sahipti, o zaman açıkça koşullu olarak başka bir üyeye

02:02.480 --> 02:04.220
ihtiyacımız var.

02:08.240 --> 02:10.040
Peki neden koalisyona ihtiyacımız var?

02:10.940 --> 02:19.820
Çünkü bir iş parçacığı engellenmeli ve kilit mevcut değilse kritik bölüme girmesine izin verilmemelidir?

02:20.820 --> 02:21.210
Tamam.

02:21.420 --> 02:26.910
Dolayısıyla, devam eden ticareti engellemeye ihtiyaç duyulduğunda, her zaman bir koşul değişkenine ihtiyacınız vardır.

02:27.210 --> 02:29.010
Koşul değişkeninin amacı budur.

02:30.000 --> 02:33.990
O zaman ihtiyacımız olan bir diğer üye kaç adım?

02:35.900 --> 02:44.690
Dediğim gibi, aynı anda kritik bölüme girebilecek tuzakların olabileceği ve serbest kalamayacağı bir kilidi

02:44.690 --> 02:46.940
başarıyla elde ettik.

02:47.570 --> 02:53.180
Kritik bölümde aynı anda çalışan beş okuyucu iş parçacığı olduğunu varsayalım.

02:53.570 --> 02:56.750
O zaman bu değişken beşe güncellenmelidir.

02:57.530 --> 03:02.960
Yani analog, belirli bir zamanda kritik bölümde kaç iş parçacığının çalıştığı anlamına gelir?

03:03.860 --> 03:08.990
Açıkçası, kritik bölümde çalışan bir yazar iş parçacığı ise, bu değer her zaman bir

03:08.990 --> 03:09.980
olacaktır.

03:10.850 --> 03:14.000
Ancak okuyucu izleri söz konusu olduğunda, bunun nadiren bir değeri olabilir.

03:15.380 --> 03:19.250
Mümkün olduğunca çok bilgiye sahip olmak her zaman iyidir.

03:20.180 --> 03:26.180
Yapımızda kilitli olan okuma hakkımızın durumu hakkında ne kadar çok bilgiye sahip olursanız, o kadar çok

03:26.180 --> 03:30.980
sayıda işlevi uygulayabileceksiniz veya bu bir yapıda günlüğe yazılacaktır.

03:31.670 --> 03:39.950
Bu nedenle, kritik bölüme girmek için bekleyen bir dizi okuyucu iş parçacığını da saydığımı

03:39.950 --> 03:40.940
görelim.

03:42.030 --> 03:49.730
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

03:49.730 --> 03:54.710
olmadığı için kritik bölüme girmek için beklediğini söyleyecektir.

03:55.730 --> 04:04.820
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

04:04.820 --> 04:07.490
değişkene sahip olabilirsiniz.

04:08.600 --> 04:13.940
Uygulamamızda size daha fazla işlevsellik veya mantık uygulamak veya bir yapıda kilitli okuma yazma

04:13.940 --> 04:17.930
yapmak için bu bilgileri nasıl kullanabileceğinizi göstereceğim.

04:18.260 --> 04:23.720
Bu yazılı ve oturum açılmış yapılarla ilgili olarak pistlerin durumu hakkında daha fazla bilgiye

04:23.720 --> 04:24.980
sahip olursunuz.

04:26.300 --> 04:31.880
Bu yol üzerinden ne kadar çok işlevsellik uygulayabilirseniz, günlük veri yapılarını yazın.

04:34.510 --> 04:41.950
Ş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

04:41.950 --> 04:51.720
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

04:51.720 --> 04:58.030
tarafından günlüğe kaydedilmediği ve kilidin kullanılabilir olduğu anlamına geliyordu.

04:59.440 --> 05:07.600
Ve son olarak, bu kilidin bir yazma iş parçacığı tarafından kaydedilmesi durumunda bir şeye daha ihtiyacınız

05:07.600 --> 05:15.280
vardır ve herhangi bir zamanda kritik bölümde çalışan tam olarak yalnızca bir doğru iş parçacığı olacağını

05:15.280 --> 05:17.230
zaten biliyoruz.

05:17.770 --> 05:22.180
Biz de bu konuyu önbelleğe alacaktık. D. bu hayati ipliğin.

05:23.740 --> 05:29.560
Açıkçası, kritik bölümde deneme ve yürütme hakkı yoksa bu değer sıfır veya null olacaktır.

05:30.130 --> 05:34.480
Ancak, kritik bölüme aynı anda girebilecek birden fazla iş parçacığı olabileceğini

05:34.480 --> 05:35.200
unutmayın.

05:35.620 --> 05:41.530
Bu nedenle, kritik bölümde yürütülebilecek birçok kök alternatif olabileceğinden, tüm okuyucu izlerinden

05:41.530 --> 05:45.310
iş parçacığını önbelleğe almamız mümkün değildir.

05:45.670 --> 05:51.250
Ancak kritik bölümde yürütülecek tam olarak tek bir doğru iş parçacığı olacaktır.

05:51.520 --> 05:54.730
Bu yazarın trajedisini de tahmin edelim.

05:55.630 --> 06:02.110
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

06:02.110 --> 06:03.280
yardımcı olacaktır.

06:03.970 --> 06:04.390
Tamam.

06:05.440 --> 06:11.260
Böylece, bu yeniden yazmanın gerekli tüm üyelerini yapılarda kilitli olarak bildirmeyi tamamladık.

06:11.650 --> 06:17.830
Şimdi mantığımızı uygulamak için bu üyelerin her birini nasıl kullanacağımızı göreceksiniz.

06:18.430 --> 06:23.290
Bir sonraki görevimiz, tüm bu beş API'nin uygulanmasını sağlamaktır.

06:23.770 --> 06:24.190
Tamam.

06:24.820 --> 06:27.850
Bu konuyu bir sonraki derste tartışacağız William.
