enquanto usando o padrão singleton, apenas uma instância é criada em multi threading?
Usando threadsafe classe singleton garante que apenas uma instância é criada.
public sealed class Singleton
{
private static Singleton singleton = null;
private static readonly objeto singletonLock objeto = new();
Singleton privada() {}
public static Singleton GetInstance()
{
fechadura (singletonLock)
{
se (singleton == null)
{
singleton = new Singleton();
}
retorno singleton ;
}
}
}
Questão irá aumentar apenas quando a criação de primeira instância.
Usando o bloqueio de() nos dará o fio de segurança para evitar a execução de duas threads em um mesmo tempo para criar instância.
Mais uma vez estamos verificando a (singletonobject == null) por isso vai garantir que apenas uma instância será criada uma vez.
opção de verificação dupla será uma prova completa para a nossa classe.
Deixe uma resposta