gemeinsamer Speicherbereich / Datenaustausch zwischen 2 Programmen
-
Hallo,
ich möchte gerne folgendes Realisieren:
- es soll ein Datenempfangsprogramm geben, welches Daten empfängt und in den Speicher legt. Dieses soll n-Mal laufen da es auf unterschiedlichen Schnittstellen Daten erhält.
- nun soll es ein zentrales Programm geben welches sich die Daten der Emfangsprogramme "sammelt" und weiter verarbeitet.Da es bei den Programmen für den Datenempfang um Geschwindigkeit geht sollen diese möglichst schlank im Hintergrund laufen, während das Programm für die Datenverarbeitung komplexer ist und keinen Zeitkriterien unterliegt.
Hat da jemand nen Tip für mich wie ich die Sache angehen kann? Oder vieleicht nen guten Literatur / Link hinweis?
Mfg
Piet
-
Warum brauchst du da zwei programme? reichen 2 threads nicht?
-
PietSoft schrieb:
Hat da jemand nen Tip für mich wie ich die Sache angehen kann? Oder vieleicht nen guten Literatur / Link hinweis?
Mfg
PietShared memory ist das was Du suchst.
-
Erst hatte ich überlegt es über Threads zu machen, aber dann kam mir der gedanke ob es nicht schneller ist wenn ich den datenempfang in einzelne programme auslager.
wichtig ist mir die Plattformunabhängigkeit.
-
Bei Datenempfang denke ich direct an Sockets
Ich hab mal was fork() gehört um einzelne Prozesse zu starten aber ich bin mir nicht sicher dass das auch unter Windows funtzt , ich kenn das nur von Linux , aber kannst ja mal suchen
Gruß Chris
-
PietSoft schrieb:
Erst hatte ich überlegt es über Threads zu machen, aber dann kam mir der gedanke ob es nicht schneller ist wenn ich den datenempfang in einzelne programme auslager.
Ich würde schätzen, dass es mit Threads schneller geht. Das umschalten zwischen Prozessen wird länger brauchen, denk ich.
-
PietSoft schrieb:
Erst hatte ich überlegt es über Threads zu machen, aber dann kam mir der gedanke ob es nicht schneller ist wenn ich den datenempfang in einzelne programme auslager.
Dir ist schon klar, dass du 90% der Zeit im Leerlauf bist, weil du auf die Daten wartest die irgendwann mal ankommen?
Inter Process Communication ist auch deutlich teurer und aufwendiger als 2 Threads zu machen. Denn was sind Prozesse anderes als Threads auf einer höheren Ebene?
-
Foxx90 schrieb:
Bei Datenempfang denke ich direct an Sockets
Damit liegt du garnicht schlecht
Im maximafall kann es bis zu 16 gleichzeitiger TCP Verbindungen kommen auf den Daten empfangen werden.dann werde ich mal googlen, danke