Ich habe mehrere Threads (ca. 40) für den Zugriff auf persistente Variablen (Strings und Longs) für mehrere hundert Benutzer in einer Java-Anwendung. Was ist der beste Weg, um diese Variablen zu speichern? Das Lesen und Schreiben der Variablen kann jederzeit erfolgen, und ich möchte nicht nur die CPU-Last minimieren, sondern auch die Auswirkungen reduzieren, wenn eine Variable nicht verfügbar ist, weil sie geschrieben wird.Best Practices für mehrere Threads und Persistenzen
Ich denke daran, eine Datei für jeden Benutzer zu erstellen, alle Variablen für diesen Benutzer in eine Zeichenfolge zu konvertieren und diese Datei zu schreiben oder zu lesen, wenn ich eine Variable brauche.
... oder erstellen Sie eine HashMap für jeden Benutzer (Schlüssel) und fügen Sie Variablen (Werte) nach Bedarf hinzu.
Gibt es eine Thread-sichere Möglichkeit, dies zu tun, um sicherzustellen, dass, wenn ein Thread eine Variable anfordert, ich sicher sein kann, dass es den richtigen Wert bekommt?
Danke.
Schon mal von Sperren und Synchronisation gehört? Bearbeiten: Erste Ressource, die in den Sinn kommt: http://docs.oracle.com/javase/tutorial/essential/concurrency/sync.html – Corbin
Ich werde es erforschen. Vielen Dank. Irgendwelche anderen Ressourcen, die ich lesen kann? – rob345
Viele von ihnen, aber keine, die mir aus dem Kopf fallen. Sie können wahrscheinlich googlen und einige Empfehlungen für gute Bücher finden, oder Sie können googlen und Tutorials finden. Tatsächlich sollte dieser Link, den ich eingefügt habe, alle Ihre Bedürfnisse abdecken, da der Zugriff auf Strings im Bereich der gleichzeitigen Probleme sehr einfach ist. – Corbin