Deever
11-02-2005, 10:44
Hey Amigos, wie geht's?
Ich habe hier mehrere Prozesse oder Threads, die per Shared Memory kommuniziern. Ausgetauscht werden müssen etwa 5 verschiedene Typen von Strukturen. Mein Problem ist jetzt: Wie weiß jetzt der Empfänger, um welchen Strukturtyp es sich handelt?
Folgende Lösungen habe ich mir überlegt:
Ich reserviere als erstes Member einen int oder char, der den Typ definiert
Ich teile jedes Shm Segment in [Anzahl Typen] Abschnitte auf und in jedem Abschnitt dürfen nur Structs eines bestimmten Typs abgelegt werden
1. scheint am einfachsten, jeoch wird dann in jedem Struct zusätzlicher Speicherplatz benötigt, was in erhöhtem Speicherbedarf ausartet, da sehr viele kleinere Strukturen kopiert werden müssen.
2. sieht komplizierter aus, ist aber im Endeffekt sicher einfacher, auch kann ich dann gleich mit Arrays arbeiten.
Im Moment würde ich zu 2. tendieren, aber ich möchte dazu noch eure Meinung hören, und vielleicht gibt es ja noch weitere Wege, die ich vergessen habe?
Vielen Dank für eure Antworten!
Gruß,
/dev
Ich habe hier mehrere Prozesse oder Threads, die per Shared Memory kommuniziern. Ausgetauscht werden müssen etwa 5 verschiedene Typen von Strukturen. Mein Problem ist jetzt: Wie weiß jetzt der Empfänger, um welchen Strukturtyp es sich handelt?
Folgende Lösungen habe ich mir überlegt:
Ich reserviere als erstes Member einen int oder char, der den Typ definiert
Ich teile jedes Shm Segment in [Anzahl Typen] Abschnitte auf und in jedem Abschnitt dürfen nur Structs eines bestimmten Typs abgelegt werden
1. scheint am einfachsten, jeoch wird dann in jedem Struct zusätzlicher Speicherplatz benötigt, was in erhöhtem Speicherbedarf ausartet, da sehr viele kleinere Strukturen kopiert werden müssen.
2. sieht komplizierter aus, ist aber im Endeffekt sicher einfacher, auch kann ich dann gleich mit Arrays arbeiten.
Im Moment würde ich zu 2. tendieren, aber ich möchte dazu noch eure Meinung hören, und vielleicht gibt es ja noch weitere Wege, die ich vergessen habe?
Vielen Dank für eure Antworten!
Gruß,
/dev