Perguntas com a marcação «atomic»

Uma operação atômica é indivisível. Este termo é usado para descrever transações em bancos de dados, acessos de baixo nível em programas multithread e operações de sistema de arquivos, entre outros.


7
Qual é a diferença entre atômico / volátil / sincronizado?
Como atômico / volátil / sincronizado funciona internamente? Qual é a diferença entre os seguintes blocos de código? Código 1 private int counter; public int getNextUniqueIndex() { return counter++; } Código 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } Código 3 private volatile int counter; public int …

6
O que significa "atômico" na programação?
No livro Java efetivo, ele afirma: A especificação da linguagem garante que a leitura ou gravação de uma variável seja atômica, a menos que a variável seja do tipo longou double[JLS, 17.4.7]. O que significa "atômico" no contexto da programação Java ou programação em geral?
276 java  atomic 


3
O que exatamente é std :: atomic?
Eu entendo que std::atomic<>é um objeto atômico. Mas atômica até que ponto? Para meu entendimento, uma operação pode ser atômica. O que exatamente se entende por tornar um objeto atômico? Por exemplo, se houver dois threads executando simultaneamente o seguinte código: a = a + 12; Então toda a operação …

13
O num ++ pode ser atômico para 'int num'?
Em geral, para int num, num++(ou ++num), como uma operação de leitura-modificação-gravação, não é atômica . Mas muitas vezes vejo compiladores, por exemplo o GCC , gerar o seguinte código ( tente aqui ): Como a linha 5, que corresponde a num++uma instrução, podemos concluir que num++ é atômica nesse …


5
Quando usar o volátil com o multi threading?
Se houver dois threads acessando uma variável global, muitos tutoriais dizem tornar a variável volátil para impedir que o compilador armazene em cache a variável em um registro e, portanto, não seja atualizado corretamente. No entanto, dois threads que acessam uma variável compartilhada são algo que exige proteção através de …

6
AtomicInteger lazySet vs. set
Qual é a diferença entre os métodos lazySete setde AtomicInteger? A documentação não tem muito a dizer sobre lazySet: Eventualmente define o valor fornecido. Parece que o valor armazenado não será definido imediatamente para o valor desejado, mas será programado para ser definido em algum momento no futuro. Mas, qual …
116 java  concurrency  atomic 


4
O acréscimo de arquivo é atômico no UNIX?
Em geral, o que podemos presumir quando anexamos a um arquivo no UNIX de vários processos? É possível perder dados (um processo substituindo as alterações do outro)? É possível que os dados sejam mutilados? (Por exemplo, cada processo está anexando uma linha por anexo a um arquivo de log, é …

3
custo de operação atômica
Qual é o custo da operação atômica (qualquer um de comparar e trocar ou adicionar / decrementar atômico)? Quantos ciclos ele consome? Ele pausará outros processadores no SMP ou NUMA ou bloqueará os acessos à memória? Ele irá liberar o buffer de reordenamento na CPU fora de ordem? Quais efeitos …



2
Inicialização do vetor de atômica
Considerar: void foo() { std::vector<std::atomic<int>> foo(10); ... } O conteúdo de foo agora é válido? Ou preciso fazer um loop explicito e inicializá-los? Eu verifiquei Godbolt e parece bom, no entanto, o padrão parece estar muito confuso neste ponto. O construtor std :: vector diz que insere instâncias inseridas por …
12 c++  vector  atomic 

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.