


Kann Boehms konservativer Garbage Collector in die C-Standardbibliothek für Multithread-Anwendungen integriert werden?
Integration der konservativen Garbage Collection mit der C-Standardbibliothek
Frage:
In einem Multi -threaded C-Anwendung, kann Boehms konservativer Garbage Collector (GC) effektiv in Verbindung mit der C-Standardbibliothek genutzt werden? Wie sollen insbesondere der Operator ::new und die von std::vector und std::string bereitgestellten Allokatoren gehandhabt werden?
Antwort:
1. Eine Neudefinition des Operators ::new:
Eine Neudefinition von ::operator new mit Boehms GC ist nicht erforderlich. Durch die ordnungsgemäße Verwendung von Boehms GC ist es möglich, eine explizite Neudefinition von ::operator new zu vermeiden.
2. Allokatoren für Standardbibliothekscontainer:
std::vector:
- Verwenden Sie std::vector mit einem expliziten Allocator-Parameter, der auf Boehms gc_allocator gesetzt ist. Dadurch wird sichergestellt, dass sowohl die interne Datenstruktur als auch einzelne Elemente GC-zugeordnet sind.
std::string:
- Zur GC-Zuweisung Wenn Sie ein internes Zeichenarray verwenden, verwenden Sie Ihre eigene benutzerdefinierte Zeichenfolgenimplementierung, die von std::basic_string abgeleitet ist, und verwenden Sie gc_allocator.
- Es gibt keine einfache Möglichkeit, die GC_malloc_atomic-Zuweisung für das Zeichenarray in der Standardimplementierung zu erzwingen.
Beispiel:
Der folgende Code zeigt eine benutzerdefinierte Implementierung eines GC-zugewiesenen Vektors:
<code class="cpp">#include <gc/gc_cpp.h> #include <gc/gc_allocator.h> #include <vector> class Myvec { std::vector<int, gc_allocator<int>> _vec; public: Myvec(size_t sz = 0) : _vec(sz) {} // ... (rest of class implementation) };</code>
3. Kompatibilität mit g:
Ja, es ist möglich, Boehm GC mit einer von g kompilierten Anwendung zu verwenden. Befolgen Sie die oben genannten Richtlinien, um GC effektiv in die Standardbibliothek zu integrieren.
Nachtrag (Januar 2017):
- Überprüfen Sie die Vorschläge n2670 und
und Garbage-Collection-Unterstützung für mögliche zukünftige Verbesserungen der Garbage-Collection-Funktionen von C .
Das obige ist der detaillierte Inhalt vonKann Boehms konservativer Garbage Collector in die C-Standardbibliothek für Multithread-Anwendungen integriert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?
