İş parçacığı iptali söz konusu olduğunda, aslında iki tür iptal
vardır: eşzamansız iptal ve ertelenmiş iptal.
Doğru.
Bu yüzden ilk olarak asenkron iptali ayrıntılı olarak tartışacağız.
Bundan sonra da ertelenmiş iptal konusunu ele alacağız.
Ertelenmiş iptali anlamak için eşzamansız iptali anlamamız önemlidir.
Ertelenmiş iptal, iş parçacıklarının eşzamansız iptal moduyla birlikte gelen dezavantajları veya tuzakları
ele almak için tanıtılmıştır.
Bu yüzden önce asenkron iptali tartışalım ve sonra ertelenmiş iptali tartışacağız.
Öncelikle iptalin ne olduğunu anlayalım.
Diyagramda, T bir ve T iki olmak üzere iki iş parçacığına sahip bir P sürecimiz olduğunu görebilirsiniz.
Doğru.
Ve her iki iş parçacığı da kendi yürütme akışlarını bağımsız olarak yürütmektedir.
Şimdi t zamanının sıfıra eşit olduğunu varsayalım.
t bir iş parçacığı, yürütme akışındaki bazı P1 talimatlarında yürütülmektedir.
Doğru.
Ve t iki iş parçacığı, yürütme akışında p iki komutunda yürütülmektedir.
Doğru.
Yani bu, T sıfıra eşitken gerçekleşiyor.
Şimdi birinci iş parçacığının t2 iş parçacığını iptal etmek istediğini varsayalım.
Diyelim ki t1 iş parçacığı P1 noktasında çalışırken t2 iş parçacığına iptal talebi
gönderdi.
Şimdi p iş parçacığı alt çizgi iptalinin bir tehdidi iptal etmek için kullanılan bir API olduğunu unutmayın.
Doğru.
Kodu tartışırken bu API'nin nasıl kullanılacağını tartışacağız.
Ama önce kavramı anlamaya odaklanalım.
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
gönderdiğini söyleyelim.
Ve t zamanında sıfıra eşittir.
T2 iş parçacığı P2 noktasında kendi yürütme akışında çalışıyordu.
Doğru.
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,
bu iptal isteği işletim sistemimiz tarafından dahili olarak sıraya alınır.
Değil mi?
Hedef iş parçacığına anında teslim edilmez, yani hedef iş parçacığı anında iptal edilmez.
Bu iptal talebini alan işletim sistemi şimdi T2 Right iş parçacığını sonlandırmak
için bir fırsat aramaktadır.
İşletim sisteminiz iş parçacığını anında sonlandırabilir veya sonlandırmayabilir ve burada asenkronun
anlamı budur, değil mi?
T1 iş parçacığı iptal talebi oluşturur oluşturmaz, tam o anda t2 iş parçacığının iptal
edilmesi gerekli değildir.
Doğru.
Bu iptal talebinin işletim sisteminiz tarafından sıraya alındığını ve ardından işletim sisteminizin
bu iptal sinyalini buradaki hedef iş parçacığına iletmek için bir fırsat aradığını görebilirsiniz.
Hedef iplik t2 doğru ipliktir.
Şimdi t zamanının delta T'ye eşit olduğunu varsayalım, değil mi?
İş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
neden olur.
Doğru.
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ü
varsayalım.
Doğru.
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
gelir.
Dolayısıyla, t2 iş parçacığı sonlandırıldığında, bir noktada bunu yürütüyor olabilir.
P3, iş parçacığı iptal talebinin bir t1 iş parçacığı tarafından oluşturulduğu bir noktaya tam olarak
P noktası olmayabilir.
İptal talebinin iş parçacığına iletilmesi biraz zaman alabilir.
T2 ve ancak iptal talebinin iletilmesinden sonra T2 iş parçacığı iptal edilir.
Doğru.
Böylece P iki noktasından P üç noktasına kadar yürütülecek tehdidi görebilirsiniz.
İptal talebi beklemedeyken.
Doğru.
Yani asenkron bu anlama gelmektedir.
Dolayısıyla bu tür iptallere asenkron iptal denir.
İptal talebi oluşturulduktan sonra işletim sisteminin bu iptal talebini hedef iş parçacığına
ne zaman ileteceği programcının elinde değildir.
Doğru.
İşletim sistemi bazı zamanlama algoritmalarını yürütmekle veya bellek ayırmakla veya bağlam değiştirme yapmakla meşgul
olabilir ya da herhangi bir şeyle meşgul olabilir, değil mi?
Böylece işletim sistemi, iş parçacıkları tarafından oluşturulan iptal talebini kuyruğa koyar.
Ve daha sonra, işletim sistemi kritik bir görevi yerine getirmeyi bitirir bitirmez, iptal talebini
kuyruktan alır ve hedef iş parçacığına iletir.
Doğru.
Hedef iş parçacığı ancak iptal sinyalinin hedef iş parçacığına iletilmesinden sonra
iptal edilir.
Eşzamanlı iptal bu şekilde çalışır.
Şimdi size iş parçacığı iptalinin nasıl uygulandığını göstereceğim kısa bir programı tartışalım.
Bundan sonra, ipliklerin iptal edilmesiyle ilgili bazı sorunları ve bu sorunların nasıl ele alınacağını tartışacağız.