[solved] QThread und singleton

Alles rund um die Programmierung mit Qt
Antworten
moviemax
Beiträge: 56
Registriert: 10. März 2008 09:49
Wohnort: München

[solved] QThread und singleton

Beitrag von moviemax »

Spricht was dagegen oder sogar mehr dafür oder
hat das eine mit dem Andren gar nichts zu tun ?

ich habe eine class JobManger : public QThread

die will ich als singleton implementieren.

Das Object JobManger jobManager soll es nur einmal existieren
und über start() meherer Jobs in seperaten thread starten.
Zuletzt geändert von moviemax am 18. März 2008 08:14, insgesamt 1-mal geändert.
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag von Volker »

Dann ist's ja nur ne Factory und kein eigener Thread oder?
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Spricht was dagegen oder sogar mehr dafür oder
hat das eine mit dem Andren gar nichts zu tun ?
Um das eindeutig zu beurteilen fehlt aber ne Menge Info :-)

Gibt fuer alles immer ein fuer und ein wieder, die vor und nachteile abzuwaegen, sollte aber eigentlich dein Job sein ;-)

Aber so ungewoehnlich ist sowas nicht, wenn es dich beruhigt.

Ob der Jobmanager unbedingt nen Singleton sein sollte, iss ne ganz andere sache.
Singeltons setzt man meist ein, wenn an unterschiedlichen stellen die (einmalige) existenz eines Objects sichergestellt sein muss, und man keine chance hat sich an ne zentralere stelle weiter vorn einzuklinken.
Oder wenn das object wirklich nur verwendet werden soll wenn es gebraucht (instanziert) an unterschiedlich moeglichen stellen.

Beim Jobmanager koennt ich mir vorstellen, dass man den besser gleich mit der Application (qApp bietet sich da an) verheitatet und beim hoch bzw runterfahren laed bzw entlaed .....

Ciao ....
moviemax
Beiträge: 56
Registriert: 10. März 2008 09:49
Wohnort: München

Beitrag von moviemax »

mercy für die guten antworten. Zum einen: Nein eine Factory ist es
(noch) nicht es wird erst mal nur ein typ von jobs erzeugt .
Wenn es anderer Typen gibt werde ich mal sehen.

Sicherlich ist es meine aufgabe das Design zu bestimmen, bei
threads bin ich eben immer etwas vorsichtig.
Da mag es sicherlich von vorteil sein, wenn man eher
Informatic als elektrotechnik studiert hat....


Da ich vermutlich von unterschiedlichen objecten zugreifen muss werde ich dies als Singelon realisieren und diesen in der app instantisieren.

Gruß moviemax
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Da ich vermutlich von unterschiedlichen objecten zugreifen muss werde ich dies als Singelon realisieren und diesen in der app instantisieren.
Genau das macht ja keinen Sinn ....

Machst du es als Member deiner App und initialisiert ihn mit beim hochfahren, warum dann als "Singleton" ? Zumindest ein Singelton im Sinne der Designpatterns ist da nicht nötig, bzw kompliziert die Sache nur unnötig.

Wenn du den Lebenszyklus an zentraler Stelle kontrollieren kannst, langt ein (quasi) globales Object, warauf die anderen alle referenzieren, vollkommen zu. Nochbesser waer nateurlich nen Member an einem eh schon vorhandenen globalen Object (qapp) ....

Singleton:
Du musst sicherstellen dass dass object nach aufrufen der get funktion existiert und das es einmalig ist. Wobei du nicht weisst, an welcher stelle das ding zuerst aufgerufen wird oder ueberhaupt .... deshalb macht man ja da den trara mit der impliziten konstruktion ....
Da mag es sicherlich von vorteil sein, wenn man eher
Informatic als elektrotechnik studiert hat....
Vollkommen wurscht eigentlich :-)
wichtiger ist wieviel Zeit du selber in die Thematik investieren willst. Mach mehr mit Threads, dann bekommst auch "nen Gefuehl" fuer. Dann werden sachen wo du jetzt meinst .. naja vorsichtig und so ... dann selbstverstaendlich. ist wie ueberall auch. Am Anfang hat man auch noch vor 220V Angst. Wobei allerdings respect und Vorsicht langen sollte :-) mit threads isses aehnlich, nur gewoehnungssache :-)

Ciao ....
moviemax
Beiträge: 56
Registriert: 10. März 2008 09:49
Wohnort: München

Beitrag von moviemax »

mir ging es in erster linie darum ob sich vom design her wiederspricht, bzw größere Probleme mit sich bringt wenn man aus einem Singleton
heraus threads generiert. Aber eigentlich bietet es sich ja an.
Mir scheint ich kann besser kontorlieren auf welche daten gleichzeitig
zugegriffen werden. Die childThreads selbst sollen auch nur lesen.
Quasi die Isolierzange gegen einen Stromschlag ;)

PS. Wir haben schon länger 230V auf der Steckdose.

Gruß moviemax
Antworten