Als «atomic» getaggte Fragen

Eine atomare Operation ist unteilbar. Dieser Begriff wird unter anderem verwendet, um Transaktionen in Datenbanken, Zugriffe auf niedriger Ebene in Multithread-Programmen und Dateisystemoperationen zu beschreiben.


7
Was ist der Unterschied zwischen atomar / flüchtig / synchronisiert?
Wie funktioniert atomar / flüchtig / synchronisiert intern? Was ist der Unterschied zwischen den folgenden Codeblöcken? Code 1 private int counter; public int getNextUniqueIndex() { return counter++; } Code 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } Code 3 private volatile int counter; public int getNextUniqueIndex() { …

6
Was bedeutet "atomar" in der Programmierung?
Im Buch "Effective Java" heißt es: Die Sprachspezifikation garantiert, dass das Lesen oder Schreiben einer Variablen atomar ist, es sei denn, die Variable ist vom Typ longoder double[JLS, 17.4.7]. Was bedeutet "atomar" im Kontext der Java-Programmierung oder der Programmierung im Allgemeinen?
273 java  atomic 


3
Was genau ist std :: atomic?
Ich verstehe, dass dies std::atomic<>ein atomares Objekt ist. Aber inwieweit atomar? Nach meinem Verständnis kann eine Operation atomar sein. Was genau bedeutet es, ein Objekt atomar zu machen? Zum Beispiel, wenn zwei Threads gleichzeitig den folgenden Code ausführen: a = a + 12; Ist dann die gesamte Operation (sagen wir …

13
Kann num ++ für 'int num' atomar sein?
Im Allgemeinen ist for int num, num++(oder ++num) als Lese-, Änderungs- und Schreiboperation nicht atomar . Aber ich sehe oft, dass Compiler, zum Beispiel GCC , den folgenden Code dafür generieren ( versuchen Sie es hier ): num++Können wir daraus schließen, dass Zeile 5, die einer Anweisung entspricht, in diesem …

8
Ist der Thread Thread! = Sicher?
Ich weiß, dass zusammengesetzte Operationen, wie sie i++nicht threadsicher sind, mehrere Operationen beinhalten. Aber ist das Überprüfen der Referenz mit sich selbst eine thread-sichere Operation? a != a //is this thread-safe Ich habe versucht, dies zu programmieren und mehrere Threads zu verwenden, aber es ist nicht fehlgeschlagen. Ich konnte wohl …

5
Wann ist flüchtig mit Multithreading zu verwenden?
Wenn zwei Threads auf eine globale Variable zugreifen, wird in vielen Tutorials angegeben, dass die Variable flüchtig ist, um zu verhindern, dass der Compiler die Variable in einem Register zwischenspeichert und sie daher nicht korrekt aktualisiert wird. Zwei Threads, die beide auf eine gemeinsam genutzte Variable zugreifen, erfordern Schutz über …

6
AtomicInteger lazySet vs. set
Was ist der Unterschied zwischen lazySetund setMethoden von AtomicInteger? Die Dokumentation hat nicht viel zu sagen lazySet: Setzt schließlich auf den angegebenen Wert. Es scheint, dass der gespeicherte Wert nicht sofort auf den gewünschten Wert gesetzt wird, sondern so geplant wird, dass er irgendwann in der Zukunft eingestellt wird. Aber …
116 java  concurrency  atomic 


4
Ist das Anhängen von Dateien unter UNIX atomar?
Was können wir im Allgemeinen als selbstverständlich betrachten, wenn wir aus mehreren Prozessen an eine Datei in UNIX anhängen? Ist es möglich, Daten zu verlieren (ein Prozess überschreibt die Änderungen des anderen)? Können Daten verstümmelt werden? (Beispielsweise hängt jeder Prozess eine Zeile pro Anhang an eine Protokolldatei an. Ist es …

3
atomare Betriebskosten
Was kostet die atomare Operation (Vergleich und Austausch oder atomares Addieren / Dekrementieren)? Wie viel Zyklen verbraucht es? Wird es andere Prozessoren auf SMP oder NUMA anhalten oder Speicherzugriffe blockieren? Wird der Nachbestellungspuffer in einer außer Betrieb befindlichen CPU geleert? Welche Auswirkungen werden auf den Cache haben? Ich interessiere mich …

5
Grundlegendes zu std :: atomic :: compare_exchange_weak () in C ++ 11
bool compare_exchange_weak (T& expected, T val, ..); compare_exchange_weak()ist eines der in C ++ 11 bereitgestellten Vergleichsaustausch-Grundelemente. Es ist schwach in dem Sinne, dass es false zurückgibt, selbst wenn der Wert des Objekts gleich ist expected. Dies ist auf einen falschen Fehler auf einigen Plattformen zurückzuführen, auf denen eine Folge von …

10
Django: Wie kann ich mich vor gleichzeitigen Änderungen von Datenbankeinträgen schützen?
Gibt es eine Möglichkeit, sich vor gleichzeitigen Änderungen desselben Datenbankeintrags durch zwei oder mehr Benutzer zu schützen? Es wäre akzeptabel, dem Benutzer, der den zweiten Commit / Save-Vorgang ausführt, eine Fehlermeldung anzuzeigen, aber die Daten sollten nicht stillschweigend überschrieben werden. Ich denke, das Sperren des Eintrags ist keine Option, da …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.