Hallo!
Ich habe einen Multi-Threaded Server mit n aktiven Verbindungen.
Und eine Klasse die Verbindungsdaten verwaltet, implementiert als Singleton:
Wenn neue Verbindungen dazu kommen oder Verbindungen verloren gehen wird das in dieser HashMap geloggt. Nur kriege ich da teilweise die merkwürdigsten Ereignisse.
Weis jemand, in wie weit diese Singleton-Implementierung Thread-Safe ist? Oder muss ich da noch Methoden synchronisieren. Eigentlich dachte ich, die Singleton-Implementierung würde alle Probleme beseitigen. Vielleicht liegt der Fehler auch woanders aber erstmal wollte ich das hier ausschließen.
Danke schon mal,
Prolahmierer
Ich habe einen Multi-Threaded Server mit n aktiven Verbindungen.
Und eine Klasse die Verbindungsdaten verwaltet, implementiert als Singleton:
Java:
public class PlayerLookup {
private static PlayerLookup instance = new PlayerLookup();
private HashMap<Socket, LookupAssoc> lookupTable;
private PlayerLookup() {
lookupTable = new HashMap<Socket, LookupAssoc>();;
}
public static PlayerLookup getInstance() {
return instance;
}
// weitere methoden die auf der HashMap arbeiten folgen hier, z.b.:
public void removeBySocket(Socket toRemove){
lookupTable.remove(toRemove);
}
Wenn neue Verbindungen dazu kommen oder Verbindungen verloren gehen wird das in dieser HashMap geloggt. Nur kriege ich da teilweise die merkwürdigsten Ereignisse.
Weis jemand, in wie weit diese Singleton-Implementierung Thread-Safe ist? Oder muss ich da noch Methoden synchronisieren. Eigentlich dachte ich, die Singleton-Implementierung würde alle Probleme beseitigen. Vielleicht liegt der Fehler auch woanders aber erstmal wollte ich das hier ausschließen.
Danke schon mal,
Prolahmierer