Pure-Ruby gleichzeitige Hash

Was ist der beste Weg zur Implementierung eines Hash geändert werden kann über mehrere threads, aber mit der kleinsten Anzahl von sperren. Für die Zwecke dieser Frage, können Sie davon ausgehen, dass der Hash gelesen werden-schwer. Es muss thread-safe in allen Ruby-Implementierungen, einschließlich diejenigen, die arbeiten in einer wahrhaft gleichzeitigen Mode, wie JRuby, und es muss geschrieben werden, in pure-Ruby (kein C, Java oder erlaubt).

Fühlen Sie sich frei, um senden Sie eine naive Lösung, die immer sperrt, aber das ist nicht wahrscheinlich, die beste Lösung zu sein. Punkte für Eleganz, aber eine kleinere Wahrscheinlichkeit von sperren Siege über einen kleineren code.

  • Ruby 1.8 oder 1.9?
  • Ich nehme die Antwort als Werke, die auf Ruby 1.9, solange es funktioniert auf JRuby in 1.9-Modus. Ich bevorzuge eine Antwort als " funktioniert sowohl auf 1.8 und 1.9.
  • Wie ist das nützlich? Sicher, Sie haben mittlerweile den Wert sicher, aber es ist nicht abzusehen, wie lange der Wert gültig ist. Könnten Sie ziehen es aus dem hash, der andere könnte geplant werden, und schreiben Sie die gleiche Taste, die alle, bevor Sie etwas tun interessant, mit.
  • Nur damit die Leute nicht denken, dass ich aufgegeben habe, werde ich akzeptieren, eine Antwort morgen 🙂
InformationsquelleAutor Yehuda Katz | 2009-07-03
Schreibe einen Kommentar