Ed
há 4 meses
Para implementar um Singleton seguro em relação a threads, você pode usar o padrão de design conhecido como "Double-Checked Locking". Aqui está um exemplo em Java: ```java public class Singleton { private static Singleton instance; private Singleton() { // Construtor privado para evitar instanciamento externo } public static Singleton getInstance() { if (instance == null) { // Primeiro teste synchronized (Singleton.class) { // Bloqueio if (instance == null) { // Segundo teste instance = new Singleton(); } } } return instance; } } ``` Justificativa: 1. Construtor Privado: Impede a criação de instâncias fora da classe. 2. Verificação Dupla: O primeiro teste (`if (instance == null)`) evita a sincronização desnecessária após a instância ser criada, melhorando a performance. 3. Sincronização: O bloco `synchronized` garante que apenas uma thread possa acessar a seção crítica de código que cria a instância, evitando a criação de múltiplas instâncias em um ambiente multithread. Essa abordagem garante que o Singleton seja criado de forma segura em ambientes com múltiplas threads.
Já tem uma conta?
Ao continuar, você aceita os Termos de Uso e Política de Privacidade
Mais perguntas desse material