Junior — Middle
O stack garante segurança ao ser utilizado em ambientes multithread?
sobes.tech IA
Resposta da IA
A pilha (Stack) em C# por padrão não é segura para múltiplos threads. Isso ocorre porque as operações push e pop não são sincronizadas, e o acesso simultâneo de vários threads pode causar condições de corrida.
Se precisar usar uma pilha em um ambiente multithread, você pode:
- Usar a classe ConcurrentStack<T> do namespace
System.Collections.Concurrent, que implementa uma pilha segura para threads. - Implementar sua própria sincronização usando bloqueios (
lock) ao redor das operações na pilha.
Exemplo de uso do ConcurrentStack:
using System.Collections.Concurrent;
var stack = new ConcurrentStack<int>();
stack.Push(1);
if (stack.TryPop(out int result))
{
Console.WriteLine(result);
}