Articles of singleton

Java Singleton e Sincronização

Por favor, esclarecer minhas dúvidas sobre Singleton e Multithreading: Qual é a melhor maneira de implementar o Singleton em Java, em um ambiente multithread? O que acontece quando vários segmentos tentam acessar o método getInstance() ao mesmo tempo? Podemos tornar o getInstance() do singleton synchronized ? A synchronization é realmente necessária ao usar classs Singleton?

Aulas de gestor de singelismo de unidade

No Unity, qual é uma boa maneira de criar um gerenciador de jogos singleton que possa ser acessado em qualquer lugar como uma class global com variables ​​estáticas que transmitirão os mesmos valores constantes para cada class que extrair esses valores? E qual seria o caminho para implementá-lo na Unity? Eu tenho que anexá-lo a […]

Como a implementação da Meyers de um Singleton é na verdade um Singleton?

Eu tenho lido muito sobre Singletons, quando devem e não devem ser usados, e como implementá-los com segurança. Eu estou escrevendo em C + + 11, e me deparei com a implementação inicializada de um singleton preguiçoso de Meyer, como visto nesta pergunta. Essa implementação é: static Singleton& instance() { static Singleton s; return s; […]

Duplo verificado bloqueio em singleton

aqui está minha class personalizada para o padrão singleton. neste código, eu uso o bloqueio verificado como abaixo. Como eu leio muitos posts em alguma fonte, eles dizem que checagem dupla é útil porque evita que dois threads simultâneos executados ao mesmo tempo façam dois objects diferentes. public class DoubleCheckLocking { public static class SearchBox […]

A necessidade de modificador volátil no bloqueio verificado em dobro no .NET

Múltiplos textos dizem que ao implementar o bloqueio duplo verificado no .NET, o campo que você está bloqueando deve ter um modificador volátil aplicado. Mas por que exatamente? Considerando o seguinte exemplo: public sealed class Singleton { private static volatile Singleton instance; private static object syncRoot = new Object(); private Singleton() {} public static Singleton […]

Instância de Singleton declarada como variável estática do método GetInstance

Eu vi implementações de padrões singleton onde variável de instância foi declarada como variável estática no método GetInstance. Como isso: SomeBaseClass &SomeClass::GetInstance() { static SomeClass instance; return instance; } Eu vejo os seguintes lados positivos desta abordagem: O código é mais simples, porque é o compilador responsável por criar esse object apenas quando o GetInstance […]

Segmento Seguro C # Singleton Padrão

Eu tenho algumas perguntas sobre o padrão singleton como documentado aqui: http://msdn.microsoft.com/en-us/library/ff650316.aspx O código a seguir é um extrato do artigo: using System; public sealed class Singleton { private static volatile Singleton instance; private static object syncRoot = new object(); private Singleton() {} public static Singleton Instance { get { if (instance == null) { […]

Bloqueio verificado duplo Java

Eu me deparei com um artigo discutindo recentemente o duplo padrão de bloqueio verificado em Java e suas armadilhas e agora eu estou querendo saber se uma variante desse padrão que eu tenho usado há anos está sujeita a quaisquer problemas. Eu olhei para muitos posts e artigos sobre o assunto e entendi os possíveis […]

Classe Singleton com vários classloaders diferentes

Por exemplo, eu tenho class Singleton com instance campo estático: public class Singleton { private static Singleton instance; // other code, construct, getters, no matter } Eu posso carregar esta class duas vezes com dois classloaders diferentes. Como eu poderia evitar isso? É inseguro e perigoso. Além disso, se eu definir a instância como null, […]

Multitões seguros de thread em Java

Dado o seguinte multiton: public class Multiton { private static final Multiton[] instances = new Multiton[…]; private Multiton(…) { //… } public static Multiton getInstance(int which) { if(instances[which] == null) { instances[which] = new Multiton(…); } return instances[which]; } } Como podemos mantê-lo seguro e preguiçoso sem a dispendiosa synchronization do método getInstance () e […]