Perguntas com a marcação «locking»

O bloqueio permite que diferentes tipos de recursos sejam usados ​​exclusivamente por um processo por vez.

9
Volátil vs. Intertravado vs. Bloqueio
Digamos que uma classe tenha um public int countercampo que seja acessado por vários threads. Isso inté apenas incrementado ou decrementado. Para incrementar esse campo, qual abordagem deve ser usada e por quê? lock(this.locker) this.counter++;, Interlocked.Increment(ref this.counter);, Mude o modificador de acesso de counterpara public volatile. Agora que descobri volatile, …


8
Como o bloqueio funciona exatamente?
Vejo que, ao usar objetos que não são seguros para threads, envolvemos o código com um bloqueio como este: private static readonly Object obj = new Object(); lock (obj) { // thread unsafe code } Então, o que acontece quando vários threads acessam o mesmo código (vamos supor que ele …

16
Por que lock (this) {…} é ruim?
A documentação do MSDN diz que public class SomeObject { public void SomeOperation() { lock(this) { //Access instance variables } } } é "um problema se a instância puder ser acessada publicamente". Eu estou me perguntando por que? É porque a trava será mantida por mais tempo que o necessário? …



7
Acordos espúrios em Java realmente acontecem?
Vendo várias perguntas relacionadas ao bloqueio e (quase) sempre encontrando o 'loop por causa de termos de ativação espúrios' 1 Gostaria de saber se alguém experimentou esse tipo de ativação (assumindo um ambiente decente de hardware / software, por exemplo)? Sei que o termo "espúrio" significa que não há razão …

5
Efeito da dica NOLOCK nas instruções SELECT
Eu acho que a verdadeira questão é: Se eu não me importo com leituras sujas, adicionar a dica with (NOLOCK) a uma instrução SELECT afetará o desempenho de: a instrução SELECT atual outras transações contra a tabela especificada Exemplo: Select * from aTable with (NOLOCK)
199 sql  sql-server  locking 




17
O que é um impasse?
Ao escrever aplicativos multithread, um dos problemas mais comuns encontrados são os impasses. Minhas perguntas à comunidade são: O que é um impasse? Como você os detecta? Você lida com eles? E, finalmente, como você evita que elas ocorram?

5
HashSet simultâneo <T> no .NET Framework?
Eu tenho a seguinte turma. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); } Preciso alterar o campo "Dados" de diferentes threads, portanto, gostaria de algumas opiniões sobre minha implementação atual segura de thread. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); public void Add(string Val){ lock(Data) Data.Add(Val); } public …



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.