Resultados da pesquisa a pedido "memory-barriers"
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, ...
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...
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 ...
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 ...
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 ...
Quais são os exemplos de barreiras de memória em C ++?
Eu vejo C ++ 11 mutexes de bloqueio não é
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 ...
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 ("" : : : ...
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 ...
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 ...