2012-11-17 9 views
6

Ich frage mich, wie Sie in einer Memory-Mapped-Datei synchronisieren würden, um es sicher als Pipe zwischen zwei JVMs zu verwenden. Hat das schon mal jemand mit Erfolg gemacht?Wie kommuniziert man zwischen zwei JVMs mit Memory-Mapped-Dateien?

+1

Es könnte helfen, Ihren Anwendungsfall zu beschreiben, da dies eine ziemlich ungewöhnliche Anforderung zu sein scheint. – home

+0

Warum nicht einfach eine Pipe benutzen und sich vom OS kümmern lassen? Die Inter-JVM-Synchronisierung ist, wie ich stark vermute, inhärent nicht portabel. –

+0

Ich denke, ein ähnliches (wenn nicht Duplikat) [Diskussion] (http://stackoverflow.com/questions/1491519/any-concept-of-shared-memory-in-java) wurde hier zuvor gehalten. – mindas

Antwort

2

Ich habe eine Bibliothek, die dies tut, aber es verwendet keine Synchronisation. Es schreibt einmal in den Speicher, anstatt den Speicher wieder zu verwenden, was das Speichermodell vereinfacht. Java Chronicle

+1

Wie fragt der Verbraucher nach neuen Daten in der Memory-Mapped-Datei? Was machen Sie, wenn Sie die Memory-Mapped-Datei schließlich rollen müssen? – JohnPristine

+0

Der Kunde fragt ab oder beschäftigt wartet. Ich rolle die Memory-Mapped-Datei nicht. Ich nehme an, es gibt genug Speicherplatz für einen Tag oder eine Woche und die Anwendung wird neu gestartet, um die Dateien zu übertragen. Wenige Anwendungen benötigen mehr als ein paar TB Daten pro Tag. –

Verwandte Themen