Kapitel 2. Atomics

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Das Wort atomar kommt aus dem Griechischen ἄτομος und bedeutet unteilbar, etwas, das nicht in kleinere Stücke zerlegt werden kann. In der Informatik wird es verwendet, um eine Operation zu beschreiben, die unteilbar ist: Sie ist entweder vollständig abgeschlossen oder sie ist noch nicht geschehen.

Wie in "Borrowing and Data Races" erwähnt , führen mehrere Threads, die gleichzeitig dieselbe Variable lesen und ändern, normalerweise zu undefiniertem Verhalten. Atomare Operationen ermöglichen es jedoch, dass verschiedene Threads dieselbe Variable sicher lesen und ändern können. Da eine solche Operation unteilbar ist, findet sie entweder vollständig vor oder vollständig nach einer anderen Operation statt, wodurch undefiniertes Verhalten vermieden wird. Später, in Kapitel 7, werden wir sehen, wie dies auf Hardwareebene funktioniert.

Atomare Operationen sind der wichtigste Baustein für alles, was mit mehreren Threads zu tun hat. Alle anderen Primitive der Gleichzeitigkeit, wie Mutexe und Bedingungsvariablen, werden mit atomaren Operationen implementiert.

In Rust sind atomare Operationen als Methoden für die Standard-Atomtypen verfügbar, die sich in std::sync::atomic befinden. Sie haben alle Namen, die mit Atomic beginnen, wie z.B. AtomicI32 oder AtomicUsize. Welche davon verfügbar sind, hängt von der Hardware-Architektur ...

Get Rust Atomics und Schlösser now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.