BT Sözlüğü › Programlama › Tehlike işaretçileri (hazard pointers)

Tehlike işaretçileri (hazard pointers)

Programlama Svenska → Güncellendi: 2026-10-11

Kilitsiz bir veri yapısında belleği ne zaman serbest bırakmanın güvenli olduğunu bilme yöntemi: her iş parçacığı o an kullandığı işaretçileri açıkça yayımlar.

Sorun şu: kilitsiz bir yapıda bir düğümü bağı çözüldüğü anda serbest bırakamazsınız, çünkü başka bir iş parçacığı tam o sırada onu okuyor olabilir. Maged Michael’ın 2004 tarihli çözümünde her iş parçacığının, o an eriştiği işaretçileri yazdığı birkaç yuvası vardır ve herkes bu yuvaları okuyabilir. Bir düğümü serbest bırakmak isteyen iş parçacığı onu özel bir listeye koyar ve zaman zaman tüm iş parçacıklarının yuvalarını tarar: kimsenin yayımlamadığı düğümler serbest bırakılır, kalanlar bekler. Epoch tabanlı geri kazanıma göre avantajı, bir iş parçacığı takılsa bile bellek kullanımının sınırlı kalmasıdır; bedeli her okumada bir bellek çiti. C++26’da standartlaştırıldı.

← Sözlüğe dön