Hallo, On Sun, 20 Nov 2011 21:11:17 +0100 guenther baer <guenther.baer@bliscon.de> wrote:
Also nach meinem Verständnis (sag es mir bitte wenn ich falsch liege) dient ein Singleton dazu zu verhindern, dass mehrere Objekte einer Klasse gebildet werden können. Somit soll wohl verhindert werden, dass ein bestimmtes Programm mehrfach gestartet werden kann. Das bereits beschriebene Verfahren habe ich in einem Programm entdeckt und wollte einfach nur wissen, wie es unter Python3 umgesetzt werden könnte. Sollte es aber andere Verfahren geben, wie so etwas umgesetzt werden kann, bin ich für Informationen sehr dankbar.
Ich finde du hast da etwas überreagiert. Ich habe einfach ein XY-Problem vermutet, dass du dich eventuell verrannt hast in ein Problem und dass es vielleicht eine bessere Lösung gibt. Das ist durchaus Konstruktiv, auch wenn es nicht sofort auf dein akutes Problem eingeht. Und an dieser Stelle mus ich sagen, dass ich nicht verstehe was Singletons mit Programm mehrfach starten zu tun haben. Wenn ich mehrere Python-Interpreter starten will dann kann ich auch mehrere Singletons haben. Die gelten nicht per-se über Prozessgrenzen hinweg. Der mehrfache Programmstart ist übrigens ein Gelöstes Problem (TM), zumindest unter Linux gibt es dafür schon länger <https://live.gnome.org/LibUnique> welches inzwischen auch in GLib (GApplication) und GTK+ (GtkApplication) eingeflossen ist. Dabei wird der DBus-Session-Bus verwendet, was sicherstellt dass ein User ein Programm nur einmal starten kann, aber mehrere user auf der gleichen Maschine sich nicht behindern. Zudem ermöglicht Unique etwa die Übergabe von Programmparametern oder ähnliches in das bereits laufende Programm. grüße, Marek