Resultados da pesquisa a pedido "memory-barriers"

5 a resposta

Este é um uso correto de Thread.MemoryBarrier ()?

Suponha que eu tenho um campo que controla a execução de algum loop: private static bool shouldRun = true;E eu tenho um thread em execução, que tem código como: while(shouldRun) { // Do some work .... Thread.MemoryBarrier(); }Agora, ...

1 a resposta

Determinando o local para o uso de barreiras (cercas)

As instruções do x86 lfence / sfence / mfence são usadas para implementar os mecanismos rmb () / wmb () / mb () no kernel do Linux. É fácil entender que eles...

5 a resposta

Volátil e Thread.MemoryBarrier em C #

Para implementar umcódigo livre de bloqueiopara aplicação multithreading eu useivolatile variáveisTeoricamente: Ovolatile keyword é simplesmente usada para garantir que todos os threads vejam o valor mais atualizado de uma variável volátil; então ...

2 a resposta

Como as funções de bloqueio e desbloqueio do mutex impedem a reordenação da CPU?

Tanto quanto sei, uma chamada de função atua como uma barreira do compilador, mas não como uma barreira da CPU. estetutorial [http://preshing.com/20120913/acquire-and-release-semantics/]diz o seguinte: adquirir um bloqueio implica adquirir ...

4 a resposta

Uma barreira à memória é uma instrução que a CPU executa ou é apenas um marcador?

Estou tentando entender exatamente o que é uma barreira de memória. Com base no que sei até agora, uma barreira de memória (por exemplo:mfence) é usado para impedir o reordenamento das instruções de antes para depois e de depois para antes da ...

2 a resposta

Quais são os exemplos de barreiras de memória em C ++?

Eu vejo C ++ 11 mutexes de bloqueio não é

2 a resposta

GCC reordenando a carga com `memory_order_seq_cst`. Isso é permitido?

Usando uma versão simplificada de umseqlock [https://en.wikipedia.org/wiki/Seqlock], o gcc reordena uma carga não atômica através de um atômicoload(memory_order_seq_cst) ao compilar o código com-O3. Essa reordenação não é observada ao compilar ...

2 a resposta

Barreiras de memória C ++ para Atomics

Eu sou um novato quando se trata disso. Alguém poderia fornecer uma explicação simplificada das diferenças entre as seguintes barreiras de memória? As janelasMemoryBarrier();A cerca_mm_mfence(); A montagem em linhaasm volatile ("" : : : ...

5 a resposta

Por que o padrão de chamada de evento C # padrão é seguro para threads sem uma barreira de memória ou invalidação de cache? E o código semelhante?

Em C #, este é o código padrão para chamar um evento de maneira segura para threads: var handler = SomethingHappened; if(handler != null) handler(this, e);Onde, potencialmente em outro encadeamento, o método add gerado pelo ...

3 a resposta

Geradores de barreira de memória

Leitura Tutorial de threading de Joseph Albahari [http://www.albahari.com/threading/part4.aspx], os seguintes são mencionados como geradores de barreiras de memória: C # 'lock declaração Monitor.Enter/Monitor.Exit)odos os métodos ...