Tag: lock-free
Einen Oberbegriff für Methoden und algorithmen zum synchronisieren von Multithread-Umgebungen oder anderen Formen des verteilten Systems ohne Verwendung sperren.
3
Antworten
Ich ausführen möchten, öffnen für das Lesen einer einzelnen Datei aus vielen threads mit std::ifstream. Meine Sorge ist, wenn std::ifstream ist thread-sicher & lock-frei? Mehr details: Ich verwende g++ 4.4, Ubuntu & Windows XP, 4.0, auf Leopard.
2
Antworten
Ich produziert haben, die eine einfache Umsetzung der lockless (lockfree) Warteschlange mit der neuen std::atomic in C++11. Ich kann nicht sehen, was ich falsch mache hier. #include <atomic> template<typename T> class lockless_queue { public: template<typename DataType> struct
5
Antworten
Habe ich folgenden Artikel gefunden: Verwenden Sie GCC-vorausgesetzt, Atomare Vorgänge sperren zu ersetzen Funktionen pthread_mutex_lock Er bezieht sich auf GCC Atomic Gelieferten. Was die Artikel vorschlagen, ist, GCC zu verwenden atomic gelieferten statt pthread-Synchronisierung-tools. Ist das eine
6
Antworten
Ich habe irgendwo gelesen (kann nicht finden, die Seite nicht mehr), dass lock-free data-Strukturen sind effizienter "für bestimmte workloads" das scheint zu bedeuten, manchmal sind Sie wirklich langsamer oder der Gewinn aus Ihnen kann null sein in
5
Antworten
Wie könnte ich dies umsetzen lock-free queue pseudocode in C? ENQUEUE(x) q ← new record q^.value ← x q^.next ← NULL repeat p ← tail succ ← COMPARE&SWAP(p^.next, NULL, q) if succ ≠ TRUE COMPARE&SWAP(tail, p, p^.next)
8
Antworten
Es ist einfach einzurichten Speicher-Barrieren auf der kernel-Seite: die Makros mb, wmb, rmb, usw. sind immer an Ort und Stelle Dank der Linux-kernel-Header. Wie dies auf der Benutzer-Seite? InformationsquelleAutor | 2009-07-26
1
Antworten
Betrachten Sie das folgende Szenario: Anforderungen: Intel x64 Server (mehrere CPU-sockel => NUMA) Ubuntu 12, GCC 4.6 Zwei Prozesse, welche große Mengen von Daten über (benannte) shared-memory - Klassischen Erzeuger-Verbraucher-Szenario Speicher angeordnet ist, in einen Ringspeicher (mit
2
Antworten
Ich bin auf der Suche nach einem ring-buffer-Implementierung (oder pseudocode) in C mit den folgenden Eigenschaften: mehrere Produzent single-consumer-pattern (MPSC) Verbraucher-Blöcke auf leeren Produzenten block auf volle lock-frei ist (ich erwarte hohe Konflikte) Bisher arbeite ich nur
6
Antworten
Entwickeln wir eine Netzwerk-Anwendung basierte C/S -, wir finden, es gibt zu viele Schlösser hinzufügen zu std::map, dass die Leistung der server wurde schlecht. Frage ich mich, ob es möglich ist, implementieren Sie eine lock-frei-Karte, wenn ja,
3
Antworten
Ich versuche, die Implementierung eines lock frei mehrere Produzent, mehrere Konsumenten-queue in C++11. Ich Tue dies als eine Lernübung, so bin ich mir wohl bewusst, dass ich nur verwenden Sie eine vorhandene open-source-Implementierung, aber ich würde wirklich
4
Antworten
Ich bin ganz neu bei multithreading-Programmierung, ich weiß nur, das die meisten gemeinsamen Producer-Consumer-Queue. Ich bin mit der boost c++ - Bibliotheken, und ich weiß nicht, ob besser ist die Verwendung von boost::lockfree::queue oder eine wrapper-Klasse um
2
Antworten
Ich bin die Implementierung eines lock-free-Mechanismus mit atomarer (double) vergleichen und swap-Anweisungen z.B. cmpxchg16b Bin ich derzeit Schreibe dies in der Montage und dann verknüpfen Sie es in. Allerdings fragte ich mich, ob es war ein Weg,
8
Antworten
Wann kann 64-bit-schreibt garantiert atomar sind, wenn die Programmierung in C auf einem Intel-x86-Plattform (insbesondere einem Intel-basierten Mac mit Mac OS x 10.4 mit Intel-compiler)? Zum Beispiel: unsigned long long int y; y = 0xfedcba87654321ULL; /* ...
3
Antworten
Ich bin auf der Suche nach einer Methode, die zu implementieren lock-free queue-Datenstruktur, die unterstützt die einzelnen Erzeuger und mehrere Verbraucher. Ich habe mir bei der klassischen Methode von Maged Michael und Michael Scott (1996), aber Ihre
4
Antworten
Je mehr ich lese desto verwirrter werde ich... ich hätte gedacht, dass es trivial zu finden, eine formal korrekte mpsc-queue in c++ implementiert. Jedes mal ich finde ein weiterer Dolchstoß ist es, weitere Forschung zu suggerieren scheint,
4
Antworten
Weiß jemand, ob es irgendwelche lock-frei container-Bibliotheken zur Verfügung .NET ? Vorzugsweise etwas, das nachweislich funktioniert und schneller ist als die Synchronisierte Wrapper haben wir in .NET. Ich habe einige Artikel auf der .NET, aber keiner von
3
Antworten
Was ist die Kosten für die atomaren operation (jeder von vergleichen-und-tauschen-oder atomic-hinzufügen/Dekrement)? Wie viel Zyklen wird verbraucht? Wird es halten Sie die anderen Prozessoren auf einem SMP-oder NUMA -, oder block-Speicher zugreift? Wird es bündig reorder buffer
6
Antworten
Entwickeln wir eine Netzwerk-Anwendung basierte C/S -, wir finden, es gibt zu viele Schlösser hinzufügen zu std::map, dass die Leistung der server wurde schlecht. Frage ich mich, ob es möglich ist, implementieren Sie eine lock-frei-Karte, wenn ja,
6
Antworten
War ich mit dem Lesen durch eine Antwortdass Jon Skeet gab eine Frage, und er erwähnt dies: Soweit ich bin besorgt, lock-free multi-threading ist für die Echtzeit-threading-Experten, von denen ich nicht einen einzigen. Seine nicht das erste
14
Antworten
Ich bin in den Prozess der Entwicklung eines Systems die Verbindung zu einem oder mehr Datenstrom-feeds und einige Analyse auf die Daten als trigger-Ereignisse basierend auf dem Ergebnis. In einem typischen multi-threaded-producer/consumer-setup, habe ich mehrere Produzenten-threads Daten
9
Antworten
Gibt es eine kleine Bibliothek, die wrapps verschiedenen Prozessoren CAS-ähnliche Operationen in Makros oder Funktionen, die sind tragbar über mehrere Compiler? PS. Die atomic.hpp-Bibliothek ist innerhalb von boost::interprocess::detail-namespace. Der Autor weigert sich, es zu machen, eine öffentliche,
15
Antworten
Ich ve wurde googeln schon einiges für einen lock-free queue in C++. Ich fand einige code und einige Studien - aber nichts, ich war in der Lage zu kompilieren. Ein lock-free hash wäre auch willkommen. ZUSAMMENFASSUNG: Bisher