libcontain

Libcontain-Bibliothek bietet eine große und wachsende Anzahl von Fast-Thread-Safe-Anmerkungen, die in C und C ++ geschrieben sind.
Jetzt downloaden

libcontain Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • GPL
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Ronald Landheer-Cieslak
  • Website des Verlags:

libcontain Stichworte


libcontain Beschreibung

Libcontain-Bibliothek bietet eine große und wachsende Zahl von Fast-Thread-Safe-Anmerkungen, die in C und C ++ geschrieben sind. Libcontain-Bibliothek bietet eine große und wachsende Anzahl von Fast-Thread-Safe-Anmerkungen, die in C und C ++ geschrieben sind. Die Libcontain-Bibliothek liefert nun folgende Containerarten: · Eine Serie von Hash-Tischen libcontain beinhaltet die Hash-Tabellen-Implementierung von GNU Glib und einem Hash Implementierung in C ++, die von der Libhash-Bibliothek geerbt wurde, stammt aus. Dieser letztere wurde in der 0.2-Freigabe fadensicher gemacht und implementiert einen linearen Hash-Algorithmus. Eine einzige Hash-Tabellen-Implementierung, die beide ersetzen wird, ist auf den Zeichenbretter und soll fadensicher und nicht blockieren sein. · Eine Array (Vektor) Implementierung libcontain enthält derzeit eine nicht blockierende Array-Implementierung. Diese Implementierung stellt jedoch eine Rennzustand in gleichzeitigen Anrufen an eine seiner Schreibfunktionen dar, wenn das Array dabei ist, in der Größe zu vergrößern. Derzeit gibt es keine nicht blockierende Möglichkeit, diesen Rennzustand zu lösen. Hilfe ist in diesem Bereich willkommen. · Ein Binomialbaum Der von Libcontain bereitgestellte Binomialbaum liefert keine algorithmische Logik in seiner Implementierung: Es ist ein generischer Behälter, der als Grundlage für andere Container-Implementierungen verwendet werden kann, z. B. einem Haufen oder a Die Karte (in der Tat, der Haufen und die Karte basieren auf diesem Binomialbaum) · Ein Heap Libcontain bietet eine automatische Sortierhaufen-Implementierung, die (offensichtlich) eine Heap-Sortierung verwendet, um die darin enthaltenen Elemente zu sortieren. Leider ist die Heap-Implementierung nicht nicht blockierend (obwohl Basen auf einer nicht blockierenden Binomialbaumimplementierung). Es enthält vier Sperrstufen: eine Leserzählung und eine Schreibsperre auf der Ebene der Knoten und eine Leserzählung und eine Schreibsperre auf der Ebene des Behälters. Die Schlösser sind so kurz wie möglich auf dem Behälter posiert, um zu verhindern, dass der Fortschritt des Algorithmus zu lang blockiert wird. Wenn jemand von einem nicht blockierenden Heapalgorithmus weiß, ist die Eingabe mehr als willkommen. · Eine Liste libcontain bietet eine nicht-blockierende Listen-Implementierung, die auf einem Algorithmus von einem Algorithmus basiert, der auf einem Algorithmus von einem Algorithmus bis m.M basiert. Micheal (auch der Erfinder der sicheren Gedächtnisgewinnung, auf dem Libmemory basiert) .a Karte Die in Libcontain enthaltene Kartenimplementierung basiert auf der Implementierung der Binomialbaum. Im Gegensatz zu einigen Implementierungen, die auf binären Bäumen basieren, speichert diese Implementierung Werte in jedem Knoten des Baums (nicht nur die Blattknoten) und ermöglicht daher einen speicherfähigeren Weg, um Informationen als Hashes und andere Kartenimplementierungen zu speichern. Die Map-Implementierung verwendet auch keine "weniger" -Funktion, verwendet jedoch einen Drei-Wege-Vergleich zum Vergleichstasten (ähnlich der Helferfunktion, die von QSort verwendet wird). Die Implementierung ist fast (aber nicht ganz) nicht blockierend: Für die meisten Absichten und Zwecke gibt es keine echten Schlösser: Lese- und Schreibvorgänge können entlang eines Zweigs des Binomialbaums erneut gerichtet werden, wenn ein Knoten, den sie durchqueren, gelöscht wird , aber nicht dafür blockieren. Ein Entfernen von Vorgang wartet jedoch auf einen anderen Entfernen von Vorgang, um zu enden, wenn er einen Knoten durchquert, der entfernt wird. · Eine Warteschlange Eine nicht blockierende Warteschlangen-Implementierung wird vorgesehen · Ein Stapel Eine nicht-blockierende Stapelimplementierung ist auch zukünftige Versionen, die Hash-Implementierung wird durch ein nicht blockierendes, und die verbleibenden Probleme mit den vorhandenen Containern werden (hoffentlich) gelöst. Hilfe ist auch erforderlich, um den architekturabhängigen Code für Nicht-IA32-Plattformen wie sparc.what's neu in dieser Version zu schreiben: · Die 0.2-Release stellt eine Anzahl wichtiger neuer Funktionen ein, einschließlich eines Heaps und einer Karte, die beide auf einem sperrfreien Haufen basieren Binomialbaum. Es beinhaltet auch das erforderliche Speichermanagement, um die auf das ABA-Problem und somit wirklich fadensicheren Fadensicherheit unempfindlich zu machen.


libcontain Zugehörige Software

Yastr.

YASSTR ist eine einfache String-Bibliothek, die hauptsächlich aus Funktionalität besteht, die ich in meinen Programmen benötige. ...

137

Herunterladen