shared_ptr

C++ Core Guidelines: Mehr Fallen in der Concurrency

Concurrency bietet viele Wege an, sich in den eigenen Fuß zu schießen. Die Regeln des heutigen Artikels sollen helfen, diese Gefahren zu kennen und zu vermeiden.

Hier geht es direkt zum Artikel auf Heise Developer:

Kommentar schreibenGelesen: 6029

Atomare Smart Pointer

C++20 wird atomare Smart Pointer erhalten. Ganz genau wird es ein std::atomic_shared_ptr und ein std::atomic_weak_ptr sein. Warum eigentlich, std::shared_ptr und std::weak_ptr sind doch schon thread-sicher. Jein. Da muss ich ein wenig ausholen.

Weiterlesen...
Kommentar schreibenGelesen: 9086

std::weak_ptr

std::unique_ptr verkörpert das Konzept des exklusiven, std::shared_ptr des geteilten Besitzes. Bleibe ich in diesem Bild, dann verkörpert der std::weak_ptr das Konzept des zeitlich eingeschränkten Besitzes, den er leiht sich die Ressource von einem std::shared_ptr aus. Der std::weak_ptr besitzt insbesondere eine Existenzberechtigung: Zyklische Referenzen von std::shared_ptr zu brechen.

Weiterlesen...
Kommentar schreibenGelesen: 6059

Besonderheiten des std::shared_ptr

Nachdem ich im letzten Artikel das große Bild zu std::shared_ptr beschrieben habe, komme ich heute zu zwei besonderen Aspekten der Smart Pointer. Zum einen zeige ich mit std::shared_from_this, wie sich ein std::shared_ptr von einem Objekt erzeugen lässt, zum anderen beschäftigt mich die Frage: Soll ein std::shared_ptr per Copy oder per Referenz übergeben werden. Insbesondere der zweite Punkt besitzt einiges an Überraschungspotential.

Weiterlesen...
Kommentar schreibenGelesen: 7989

std::shared_ptr

std::shared_ptr teilen sich eine gemeinsame Ressource. Dabei zählt der gemeinsame Referenzzähler mit, wie viele Besitzer die Ressource hat. Wird der Smart Pointer std::shared_ptr kopiert, erhöht sich automatisch der Referenzzähler. Beim Löschen eines std::shared_prt wird sein Referenzzähler hingegen automatisch erniedrigt. Erreicht der Referenzzähler den Wert 0, wird die Ressource freigegeben.

Weiterlesen...
Kommentar schreibenGelesen: 8536

Speicher und Performanz Overhead von Smart Pointern

C++ bietet vier verschiedene Smart Pointer an. Zwei davon will ich mir in diesem Artikel unter dem Aspekt Overhead in puncto Speicher und Performanz genauer anschauen. Während mein erster Kandidat std::unique_ptr den Lebenszyklus genau einer Ressource verwaltet, teilt sich mein zweiter Kandidat std::shared_ptr typischerweise seine Ressource mit anderen std::shared_ptr. Ich nehme das Ergebnis meines Tests gerne vorweg, bevor die nackten Zahlen kommen. Es gibt wenige Gründe in modernem C++, das Speichermanagment mit new und delete explizit in die Hand zu nehmen. 

Weiterlesen...
Kommentar schreibenGelesen: 8424

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode