Namensräume
Varianten

std::atomic_thread_fence

Aus cppreference.com
< cpp‎ | atomic

 
 
Atomare Operationen Bibliothek
Types
Original:
Types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
atomic(C++11)
atomic_is_lock_free(C++11)
Funktionen
Original:
Functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
atomic_store
atomic_store_explicit
(C++11)
(C++11)
atomic_load
atomic_load_explicit
(C++11)
(C++11)
atomic_exchange
atomic_exchange_explicit
(C++11)
(C++11)
atomic_compare_exchange_weak
atomic_compare_exchange_weak_explicit
atomic_compare_exchange_strong
atomic_compare_exchange_strong_explicit
(C++11)
(C++11)
(C++11)
(C++11)
atomic_fetch_add
atomic_fetch_add_explicit
(C++11)
(C++11)
atomic_fetch_sub
atomic_fetch_sub_explicit
(C++11)
(C++11)
atomic_fetch_and
atomic_fetch_and_explicit
(C++11)
(C++11)
atomic_fetch_or
atomic_fetch_or_explicit
(C++11)
(C++11)
atomic_fetch_xor
atomic_fetch_xor_explicit
(C++11)
(C++11)
Atomic Fahnen
Original:
Atomic flags
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
atomic_flag(C++11)
atomic_flag_test_and_set
atomic_flag_test_and_set_explicit
(C++11)
(C++11)
atomic_flag_clear
atomic_flag_clear_explicit
(C++11)
(C++11)
Initialisierung
Original:
Initialization
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
atomic_init(C++11)
ATOMIC_VAR_INIT(C++11)
ATOMIC_FLAG_INIT(C++11)
Speicher Bestellung
Original:
Memory ordering
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
memory_order(C++11)
kill_dependency(C++11)
atomic_thread_fence(C++11)
atomic_signal_fence(C++11)
 
definiert in Header <atomic>
extern"C"void atomic_thread_fence(std::memory_order order );
(seit C++11)
Stellt Speicher Synchronisierung Bestellung von nicht-atomare und entspannt atomare Zugriffe, wie order angewiesen, ohne einen zugehörigen atomaren Operation. Zum Beispiel werden alle nicht-atomare und entspannt atomaren Läden, die vor einem std::memory_order_release Zaun in thread geschehen A wird mit nicht-atomare und entspannt atomaren Lasten aus den gleichen Stellen in thread B nach einer std::memory_order_acquire Zaun gemacht synchronisiert werden .
Original:
Establishes memory synchronization ordering of non-atomic and relaxed atomic accesses, as instructed by order, without an associated atomic operation. For example, all non-atomic and relaxed atomic stores that happen before a std::memory_order_release fence in thread A will be synchronized with non-atomic and relaxed atomic loads from the same locations made in thread B after an std::memory_order_acquire fence.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Inhaltsverzeichnis

[Bearbeiten]Parameter

order -
der Speicher Bestellung per diesem Zaun ausgeführt
Original:
the memory ordering executed by this fence
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[Bearbeiten]Rückgabewert

(None)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[Bearbeiten]Ausnahmen

noexcept specification:  
noexcept
  (seit C++11)

[Bearbeiten]Beispiele

Scan an array of mailboxes, and process only the ones intended for us, without unnecessary synchronization.

constint num_mailboxes =32;std::atomic<int> mailbox[num_mailboxes];   // The writer threads update non-atomic shared data and then update mailbox[i] as followsstd::atomic_store_explicit(&mailbox[i], std::memory_order_release);   // Reader thread needs to check all mailbox[i], but only needs to sync with onefor(int i =0; i < num_mailboxes;++i){if(std::atomic_load_explicit(&mailbox[i], std::memory_order_relaxed)== my_id){ std::atomic_thread_fence(std::memory_order_acquire);// synchronize with just one writer do_work(i);// guaranteed to observe everything done in the writer thread before// the atomic_store_explicit()}}


[Bearbeiten]Siehe auch

definiert Speicher Bestellung Einschränkungen für den angegebenen atomaren Operation
Original:
defines memory ordering constraints for the given atomic operation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(typedef)[edit]
Barriere zwischen einem Thread und einem Signalhandler, der im selben Thread ausgeführt wird
Original:
fence between a thread and a signal handler executed in the same thread
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(Funktion)[edit]
C documentation for atomic_thread_fence
close