Kafamı C++ 'da tam olarak bir iptal etme noktasının ne olduğunu anlamaya çalışıyorum.Tam olarak bir iptal noktası nedir?
man page ve
What are pthread cancellation points used for Ama hala bazı noktalarda biraz karıştı: okudum. Örneğin, write() işlevini kullanıyorum. Görünüşe göre bu bir iptal noktasıdır. Bu yüzden write() işlevini çağırdığımda, başka bir iş parçacığının işlemeye başladığını görebiliyorum (bu yüzden kodum yazım iş parçasından başka bir iş parçacığına geçecek), bu genellikle yazma-yazma arabelleği dolduğunda ve yazmadan önce boşaltılması gerektiğinde ortaya çıkar.() başarılı olabilir/tamamlayabilir.
Ama kafamda
, bu bir dişin bir iptal değil, sadece geçici bir engelleme/askıya ve yapmak için hiçbir iplik "temizleme" ... Yani benim soru, iptal yapmak var noktalar "engelleme noktaları" ile ilişkisi var? - onlar gerçekten aynı şey mi, yoksa bir fark var mı? Bir iptal noktasının ne olduğuna dair net bir "üst düzey" açıklama gerçekten yararlı olacaktır.
genel olarak bir iptal noktası kontrol akışında herhangi bir nokta burada programlayıcıya kontrol döner. "İptal" in olası tek anlamı tekrar programlanmamaktır, bu yüzden zamanlama kararlarını etkileyebiliyorsanız bir şeyi iptal edebilirsiniz. Sistem çağrıları, programlayıcı ile doğal bir etkileşim oluşturur, ancak başkaları da olabilir. –
@KerrekSB Bu yorum ve Bogdan V'nin cevabı ile, bence bu gerçekten bana mantıklı geliyor, teşekkürler :) –
Zamanlayıcıya değinen net, özlü ve sağlam bir açıklama için teşekkürler @KerrekSB. – ifelsemonkey