Perguntas com a marcação «interlocked»

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, …

2
As implementações intertravadas baseadas no CompareExchange devem usar o SpinWait?
Abaixo está uma implementação de um método intertravado baseado em Interlocked.CompareExchange. É aconselhável que esse código use uma SpinWaitrotação antes de reiterar? public static bool AddIfLessThan(ref int location, int value, int comparison) { int currentValue; do { currentValue = location; // Read the current value if (currentValue >= comparison) return …
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.