Espaços nominais
Variantes
Ações

std::atomic_thread_fence

De cppreference.com

<metanoindex/>

 
 
Biblioteca operações atômica
Tipos
Original:
Types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(C++11)
Funções
Original:
Functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Bandeiras atômicas
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.
Inicialização
Original:
Initialization
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Memória de encomenda
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.
 
<tbody> </tbody>
Definido no cabeçalho <atomic>
extern "C" void atomic_thread_fence( std::memory_order order );
(desde C++11)
Estabelece a sincronização de memória ordenação de não-atômicas e relaxado acessos atômicas, conforme instruções order, sem uma operação associada atômica. Por exemplo, todas as lojas não-atômicas e relaxado atômicas que acontecem antes de uma cerca std::memory_order_release no segmento A será sincronizado com os não-atômicas e relaxado cargas atômicas dos mesmos locais feitas no segmento B, após uma cerca std::memory_order_acquire.
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.

Parâmetros

order -
a memória ordenação executado por essa cerca
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.

Valor de retorno

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

Exceções

noexcept specification:  
<tbody> </tbody>
noexcept
  (desde C++11)

Exemplos

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

const int num_mailboxes = 32;
std::atomic<int> mailbox[num_mailboxes];

// The writer threads update non-atomic shared data and then update mailbox[i] as follows
 std::atomic_store_explicit(&mailbox[i], std::memory_order_release);

// Reader thread needs to check all mailbox[i], but only needs to sync with one
 for (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()
    }
 }


Veja também

define restrições de memória de encomenda para a operação dada atômica
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]
cerca entre um fio e um manipulador de sinal executado no mesmo segmento
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.

(função) [edit]
Documentação C para atomic_thread_fence