WEBVTT

00:06.230 --> 00:10.400
Evet arkadaşlar, şimdi ertelenmiş iptal kavramını tartışacağız.

00:10.640 --> 00:16.550
Dolayısıyla, ertelenmiş iptal, programcının iş parçacığının yürütme akışında hangi noktalarda iş parçacığının iptal

00:16.550 --> 00:19.640
edilmesine izin verileceğini kontrol etmesine olanak tanır.

00:19.670 --> 00:26.720
Dolayısıyla, iş parçacığının yürütme akışının herhangi bir noktasında iptal edilebildiği iş parçacıklarının senkronize

00:26.720 --> 00:30.530
olmayan iptalinin biraz tersi olduğunu görebilirsiniz.

00:30.530 --> 00:33.710
Ve bu geliştiricilerde ya da programcılarda değildi.

00:33.710 --> 00:39.560
İş parçacığının yürütme akışının hangi noktasında, iş parçacığının eşzamansız iptal

00:39.560 --> 00:42.560
modunda iptal edileceğini ele alın.

00:42.590 --> 00:43.390
Doğru.

00:43.400 --> 00:49.490
İş parçacığının iptalinin ertelenmiş iptal modunda ise programcı, iş parçacığının yürütme

00:49.490 --> 00:57.410
akışında hangi noktada veya hangi komutta iş parçacığının iptal edilmesine izin verileceğini kontrol etme konusunda tam

00:57.440 --> 00:58.970
kontrole sahiptir.

00:58.970 --> 00:59.690
Doğru.

00:59.970 --> 01:06.390
Dolayısıyla, ertelenmiş iptalde iş parçacığı, yazmak istediği gibi yürütme akışının herhangi

01:06.390 --> 01:08.130
bir yerinde iptal edemez.

01:08.280 --> 01:12.300
Ertelenmiş iptal, değişmezler sorununu ele almak için kullanılır.

01:12.540 --> 01:18.330
İş parçacıklarının eşzamansız iptali değişmezler sorununu çözemez, ancak iş parçacığının ertelenmiş

01:18.330 --> 01:19.770
iptali bunu yapabilir.

01:20.460 --> 01:26.610
Bu nedenle, iş parçacığının yürütme akışında iş parçacığının iptal etmesine izin verilen noktalara iptal

01:26.610 --> 01:27.990
noktaları denir.

01:27.990 --> 01:28.800
Doğru.

01:28.800 --> 01:34.890
Dolayısıyla bu, iş parçacığının yürütme akışında iş parçacığının iptal edilebileceği talimatları veya noktaları

01:34.890 --> 01:37.980
ele almak için kullandığımız özel bir terimdir.

01:38.070 --> 01:43.350
İptal noktalarını bir diyagram yardımıyla anlamaya çalışalım, sağ tarafta bir T1 iş

01:43.350 --> 01:49.770
parçacığımız olduğunu ve bu iş parçacığının yürütme akışında belirli noktalar olduğunu varsayalım.

01:49.770 --> 01:50.490
Değil mi?

01:50.490 --> 01:56.190
Belirli noktalar derken, o iş parçacığının yürütme akışında bulunan bazı talimatları kastediyorum.

01:56.640 --> 02:03.360
İş parçacığının yürütme akışında P1 noktasında yürütüldüğünü ve ardından iş parçacığına iptal sinyali

02:03.390 --> 02:05.970
gönderildiğini varsayalım.

02:07.050 --> 02:14.190
Ayrıca, bu T1 iş parçacığının eşzamansız iş parçacığı iptal modu yerine ertelenmiş iş parçacığı iptal modunu

02:14.190 --> 02:15.960
kullandığını varsayalım.

02:15.960 --> 02:16.680
Doğru.

02:17.430 --> 02:24.030
Bu da basitçe, T1 iş parçacığının iptal sinyali verildiğinde yürütme akışının herhangi bir

02:24.030 --> 02:27.510
noktasında iptal etmeyeceği anlamına gelir.

02:27.540 --> 02:32.310
P1, P2, P3, P4 ve P5 noktalarının olduğunu görebilirsiniz.

02:32.340 --> 02:39.480
Dolayısıyla P4, aslında bir iptal noktası olan T1 iş parçacığının yürütme akışındaki özel bir noktadır.

02:40.710 --> 02:47.130
İş parçacığının yürütme akışında belirli bir noktayı iptal noktası olarak atamak programcının veya geliştiricinin

02:47.130 --> 02:49.290
sorumluluğundadır.

02:49.300 --> 02:50.010
Doğru.

02:50.100 --> 02:54.230
Bunu bir API iş parçacığı test iptali kullanarak yapabilirsiniz.

02:54.240 --> 02:54.960
Doğru.

02:54.960 --> 03:01.770
Dolayısıyla, bu API'yi P4 numaralı noktada çağırırsanız, P4 numaralı nokta iptal noktası olur.

03:01.800 --> 03:02.610
Doğru.

03:02.820 --> 03:07.950
Dolayısıyla t1 iş parçacığı P2 nokta numarasını yürüttüğünde hiçbir şey olmayacaktır.

03:07.950 --> 03:12.360
t1 iş parçacığı nokta numarasını yürüttüğünde iş parçacığı iptal edilmeyecektir.

03:12.390 --> 03:14.430
Tekrar P3, hiçbir şey olmayacak.

03:14.460 --> 03:19.670
T1 iplik hakkı için bekleyen bir iptal sinyali olmasına rağmen.

03:19.680 --> 03:27.720
Ancak t1 iş parçacığı, aslında bir iş parçacığı testi olan P4 noktasını çalıştırır çalıştırmaz, API'yi iptal eder, ardından

03:27.750 --> 03:29.910
iş parçacığı iptal edilir.

03:29.910 --> 03:30.600
Doğru.

03:30.600 --> 03:34.920
Çünkü T1 iş parçacığı için halihazırda bekleyen bir iptal sinyali vardır.

03:35.430 --> 03:41.590
Bu da basitçe, bir geliştirici ya da programcı olarak bunu kontrol etmek için bir kontrol sahibi olduğunuz anlamına gelir.

03:41.590 --> 03:45.910
Hangi noktada başlığınızın iptal edilmesini istersiniz.

03:45.910 --> 03:52.480
İş parçacığına bir iptal sinyali gönderildiğinde, iş parçacığınızın yürütme akışının herhangi bir rastgele

03:52.480 --> 03:59.080
noktasında iptal edilmesini istemezsiniz, bunun yerine iş parçacığınızın yürütme akışının yalnızca

03:59.110 --> 04:07.000
belirli bir noktasında iptal edilmesine izin vermek istersiniz ve bu nokta programcı tarafından seçilebilir.

04:07.390 --> 04:13.090
Bu nedenle iptal sinyali çekirdek tarafından iptal edilen iş parçacığına iletilebilir, ancak yalnızca çalışan

04:13.090 --> 04:15.790
iş parçacığının iptal noktasında işlenebilir.

04:15.880 --> 04:21.850
İptal noktasını akıllıca seçmek programcının sorumluluğundadır, öyle ki iş parçacığı iptal

04:21.880 --> 04:29.170
noktasında iptal edildiğinde varyans, kaynak sızıntısı veya kilitlenme sorunları ortaya çıkmamalıdır.

04:29.200 --> 04:29.950
Değil mi?

04:30.190 --> 04:34.810
Dolayısıyla, iptal noktasını akıllıca seçmek sizin sorumluluğunuzdadır.

04:34.810 --> 04:38.440
Yanlış iptal noktasını seçerseniz, sorunlar ortaya çıkacaktır.

04:38.470 --> 04:39.160
Değil mi?

04:40.660 --> 04:46.870
Şimdi ertelenmiş iptalin uygulanmasını ve iptal noktalarıyla nasıl çalışılacağını

04:46.870 --> 04:47.860
tartışalım.

04:47.860 --> 04:53.920
Ve dosyada ertelenmiş iptal ve iptal noktası mantığını uygulayacağız Master

04:53.950 --> 04:57.670
slave one Ertelenmiş iptal noktası C Right.

04:57.820 --> 05:01.630
Bu yüzden yeni kod değişikliklerini bir sonraki ders videosunda tartışalım.
