WEBVTT

00:06.550 --> 00:11.650
Evet arkadaşlar, bu ders videosunda, tartıştığımız yemek filozofları problem ifadesini uygulamak

00:11.650 --> 00:13.660
için çözümü tartışacağız.

00:13.690 --> 00:14.470
Doğru.

00:15.040 --> 00:20.330
Umarım yemek filozofu problem ifadesini kendi başınıza çözmek için yeterince deneme yapmışsınızdır.

00:20.350 --> 00:24.700
Son ders videosunda ödev programını zaten kurmuştuk.

00:25.030 --> 00:29.920
Dolayısıyla, yemek filozofu problem ifadesinin çözümünü uygulamak için, filozof fonksiyonu

00:29.920 --> 00:32.670
olan üç fonksiyonu uygulayacağız.

00:32.680 --> 00:39.790
Sonra ikincisi filozof her iki kaşığa da erişir ve üçüncüsü filozof her iki kaşığı da serbest bırakır.

00:39.790 --> 00:45.850
Yemek filozofu sorun bildiriminin tüm çözümü bu üç işlev tarafından uygulanmaktadır.

00:46.510 --> 00:52.600
Dolayısıyla, bu problem cümlesinin çözümü boyunca, iki ana mantığı

00:52.600 --> 00:57.350
program boyunca birçok kez uygulayacağız.

00:57.370 --> 01:04.030
İlk mantık, filozof P Right'a nasıl bir kaşık s atanacağını söyler.

01:04.180 --> 01:09.040
Örneğin, filozof P'nin kaşığa erişmek istediğini varsayalım.

01:09.040 --> 01:17.230
S Bu nedenle, s kaşığının filozof P'ye verildiğini göstermek için aşağıdaki kod parçasını

01:17.230 --> 01:18.820
uygulayacağız.

01:18.850 --> 01:26.440
Yani, önce s kaşığının muteksini günlüğe kaydederiz çünkü s kaşığının durumunu değiştireceğiz,

01:26.470 --> 01:33.340
böylece s kaşığının yeni durumu s kaşığının filozof P'ye atandığını yansıtır, bu yüzden

01:33.370 --> 01:37.690
burada kaşığı kullanılıyor olarak işaretleyeceğiz.

01:37.690 --> 01:45.100
Bu yüzden is used bayrağını true değerine eşitleyeceğiz ve filozof işaretçisi kaşığın atandığı filozofu

01:45.100 --> 01:46.940
gösterecektir.

01:47.120 --> 01:47.960
Değil mi?

01:47.960 --> 01:54.620
Dolayısıyla burada kaşığın durumunu değiştirdiğiniz için kaşığın muteksini kilitlemeniz gerekir,

01:54.620 --> 02:02.060
böylece siz kaşığın durumunu değiştirirken programın başka hiçbir iş parçacığı kaşığın durumuna erişemez

02:02.060 --> 02:04.220
veya değiştiremez.

02:04.340 --> 02:05.180
Değil mi?

02:05.360 --> 02:11.480
Dolayısıyla, kaşığın durumunu bu şekilde değiştirdiğinizde, s kaşığının filozof P'ye atandığını

02:11.480 --> 02:17.810
yansıtır Benzer şekilde, programımızda birden çok kez uygulayacağımız ikinci mantık, kaşığın nasıl

02:17.810 --> 02:21.800
kullanılabilir hale getirileceğidir, değil mi?

02:22.370 --> 02:30.560
Bunun anlamı şudur: Eğer kaşık zaten dolu ise ya da bir filozofa verilmişse, kaşığın yeni durumunun kaşığın

02:30.560 --> 02:37.010
mevcut olduğunu yansıtması için kaşığın durumunu nasıl değiştirmelisiniz?

02:37.130 --> 02:44.900
Yani yine kaşığın muteksini kilitleyeceksiniz çünkü kaşığın durumunu değiştiriyorsunuz ve kaşığı kullanılmıyor

02:44.900 --> 02:51.470
olarak işaretleyeceksiniz ve filozofun işaretçisi null'a işaret edecek.

02:51.470 --> 02:52.280
Değil mi?

02:52.400 --> 03:00.080
Yani yapmanız gereken tek şey, kaşığın bir filozofa verilip verilmediğini yansıtacak şekilde kaşığın durumunu

03:00.080 --> 03:03.860
nasıl değiştirdiğiniz veya güncellediğinizdir.

03:03.890 --> 03:04.670
Değil mi?

03:04.970 --> 03:12.260
Dolayısıyla, bu kodlama mantığı size bu problem ifadesinin çözümünde nasıl ilerleyeceğiniz konusunda bir fikir verecektir.

03:12.830 --> 03:19.460
Şimdi klavyenin başına geçelim ve bu filozof fonksiyonuyla çözümümüzü uygulamaya başlayalım.
