WEBVTT

00:05.020 --> 00:10.060
İş parçacığı iptali söz konusu olduğunda, aslında iki tür iptal

00:10.060 --> 00:13.810
vardır: eşzamansız iptal ve ertelenmiş iptal.

00:13.810 --> 00:14.530
Doğru.

00:15.370 --> 00:19.360
Bu yüzden ilk olarak asenkron iptali ayrıntılı olarak tartışacağız.

00:19.450 --> 00:22.960
Bundan sonra da ertelenmiş iptal konusunu ele alacağız.

00:22.960 --> 00:28.690
Ertelenmiş iptali anlamak için eşzamansız iptali anlamamız önemlidir.

00:28.810 --> 00:35.770
Ertelenmiş iptal, iş parçacıklarının eşzamansız iptal moduyla birlikte gelen dezavantajları veya tuzakları

00:35.770 --> 00:38.290
ele almak için tanıtılmıştır.

00:38.650 --> 00:43.600
Bu yüzden önce asenkron iptali tartışalım ve sonra ertelenmiş iptali tartışacağız.

00:44.410 --> 00:48.000
Öncelikle iptalin ne olduğunu anlayalım.

00:48.010 --> 00:54.670
Diyagramda, T bir ve T iki olmak üzere iki iş parçacığına sahip bir P sürecimiz olduğunu görebilirsiniz.

00:54.700 --> 00:55.390
Doğru.

00:56.780 --> 01:02.390
Ve her iki iş parçacığı da kendi yürütme akışlarını bağımsız olarak yürütmektedir.

01:03.050 --> 01:06.230
Şimdi t zamanının sıfıra eşit olduğunu varsayalım.

01:06.260 --> 01:11.150
t bir iş parçacığı, yürütme akışındaki bazı P1 talimatlarında yürütülmektedir.

01:11.150 --> 01:11.900
Doğru.

01:11.900 --> 01:17.030
Ve t iki iş parçacığı, yürütme akışında p iki komutunda yürütülmektedir.

01:17.030 --> 01:17.840
Doğru.

01:17.870 --> 01:20.660
Yani bu, T sıfıra eşitken gerçekleşiyor.

01:22.140 --> 01:27.060
Şimdi birinci iş parçacığının t2 iş parçacığını iptal etmek istediğini varsayalım.

01:27.300 --> 01:33.390
Diyelim ki t1 iş parçacığı P1 noktasında çalışırken t2 iş parçacığına iptal talebi

01:33.420 --> 01:34.830
gönderdi.

01:34.920 --> 01:41.190
Şimdi p iş parçacığı alt çizgi iptalinin bir tehdidi iptal etmek için kullanılan bir API olduğunu unutmayın.

01:41.190 --> 01:41.940
Doğru.

01:42.240 --> 01:46.190
Kodu tartışırken bu API'nin nasıl kullanılacağını tartışacağız.

01:46.200 --> 01:49.380
Ama önce kavramı anlamaya odaklanalım.

01:49.620 --> 01:56.220
Yani t zamanı p1 komutunda sıfıra eşit olduğunda, T1 iş parçacığının t2 iş parçacığına iptal isteği

01:56.220 --> 01:58.050
gönderdiğini söyleyelim.

01:58.050 --> 01:59.850
Ve t zamanında sıfıra eşittir.

01:59.880 --> 02:04.770
T2 iş parçacığı P2 noktasında kendi yürütme akışında çalışıyordu.

02:04.770 --> 02:05.430
Doğru.

02:05.670 --> 02:12.030
Dolayısıyla, herhangi bir iş parçacığı aynı sürecin başka bir iş parçacığını iptal etmek için iptal isteği oluşturduğunda,

02:12.030 --> 02:16.560
bu iptal isteği işletim sistemimiz tarafından dahili olarak sıraya alınır.

02:16.560 --> 02:17.370
Değil mi?

02:17.880 --> 02:25.300
Hedef iş parçacığına anında teslim edilmez, yani hedef iş parçacığı anında iptal edilmez.

02:25.450 --> 02:30.790
Bu iptal talebini alan işletim sistemi şimdi T2 Right iş parçacığını sonlandırmak

02:30.790 --> 02:33.250
için bir fırsat aramaktadır.

02:34.420 --> 02:40.840
İşletim sisteminiz iş parçacığını anında sonlandırabilir veya sonlandırmayabilir ve burada asenkronun

02:40.840 --> 02:42.850
anlamı budur, değil mi?

02:42.880 --> 02:48.610
T1 iş parçacığı iptal talebi oluşturur oluşturmaz, tam o anda t2 iş parçacığının iptal

02:48.610 --> 02:51.010
edilmesi gerekli değildir.

02:51.010 --> 02:51.650
Doğru.

02:51.670 --> 02:57.460
Bu iptal talebinin işletim sisteminiz tarafından sıraya alındığını ve ardından işletim sisteminizin

02:57.460 --> 03:03.400
bu iptal sinyalini buradaki hedef iş parçacığına iletmek için bir fırsat aradığını görebilirsiniz.

03:03.400 --> 03:06.220
Hedef iplik t2 doğru ipliktir.

03:07.810 --> 03:12.220
Şimdi t zamanının delta T'ye eşit olduğunu varsayalım, değil mi?

03:12.280 --> 03:19.450
İşletim sistemi, hedef iş parçacığınız t2'ye iptal sinyalini gönderir ve bu da t2'nin anında sonlandırılmasına

03:19.450 --> 03:20.350
neden olur.

03:20.350 --> 03:20.950
Doğru.

03:20.950 --> 03:28.210
Bu nedenle, t zamanının delta t'ye eşit olduğu anda hedef iş parçacığınız t2'nin yürütme akışında P3 noktasını yürüttüğünü

03:28.210 --> 03:29.710
varsayalım.

03:29.950 --> 03:30.730
Doğru.

03:30.880 --> 03:38.380
Bu da T2 iş parçacığının, yürütme akışında P3 noktasını yürütürken iptal sinyalini aldığı anlamına

03:38.380 --> 03:39.520
gelir.

03:40.060 --> 03:45.790
Dolayısıyla, t2 iş parçacığı sonlandırıldığında, bir noktada bunu yürütüyor olabilir.

03:45.820 --> 03:54.100
P3, iş parçacığı iptal talebinin bir t1 iş parçacığı tarafından oluşturulduğu bir noktaya tam olarak

03:54.100 --> 03:56.620
P noktası olmayabilir.

03:57.690 --> 04:03.000
İptal talebinin iş parçacığına iletilmesi biraz zaman alabilir.

04:03.070 --> 04:08.520
T2 ve ancak iptal talebinin iletilmesinden sonra T2 iş parçacığı iptal edilir.

04:08.520 --> 04:09.240
Doğru.

04:11.080 --> 04:16.510
Böylece P iki noktasından P üç noktasına kadar yürütülecek tehdidi görebilirsiniz.

04:16.870 --> 04:19.570
İptal talebi beklemedeyken.

04:19.750 --> 04:20.590
Doğru.

04:20.830 --> 04:23.650
Yani asenkron bu anlama gelmektedir.

04:24.670 --> 04:28.420
Dolayısıyla bu tür iptallere asenkron iptal denir.

04:28.420 --> 04:34.630
İptal talebi oluşturulduktan sonra işletim sisteminin bu iptal talebini hedef iş parçacığına

04:34.630 --> 04:38.380
ne zaman ileteceği programcının elinde değildir.

04:38.380 --> 04:39.130
Doğru.

04:39.490 --> 04:45.640
İşletim sistemi bazı zamanlama algoritmalarını yürütmekle veya bellek ayırmakla veya bağlam değiştirme yapmakla meşgul

04:45.640 --> 04:48.910
olabilir ya da herhangi bir şeyle meşgul olabilir, değil mi?

04:48.910 --> 04:53.710
Böylece işletim sistemi, iş parçacıkları tarafından oluşturulan iptal talebini kuyruğa koyar.

04:53.710 --> 05:00.250
Ve daha sonra, işletim sistemi kritik bir görevi yerine getirmeyi bitirir bitirmez, iptal talebini

05:00.250 --> 05:03.580
kuyruktan alır ve hedef iş parçacığına iletir.

05:03.580 --> 05:04.180
Doğru.

05:04.180 --> 05:09.790
Hedef iş parçacığı ancak iptal sinyalinin hedef iş parçacığına iletilmesinden sonra

05:09.790 --> 05:11.080
iptal edilir.

05:12.130 --> 05:15.160
Eşzamanlı iptal bu şekilde çalışır.

05:15.190 --> 05:21.760
Şimdi size iş parçacığı iptalinin nasıl uygulandığını göstereceğim kısa bir programı tartışalım.

05:23.130 --> 05:29.310
Bundan sonra, ipliklerin iptal edilmesiyle ilgili bazı sorunları ve bu sorunların nasıl ele alınacağını tartışacağız.
