Pregunta

A mi entender hay varios algoritmos diferentes para la implementación de software transaccional de memoria (y esta es un área de investigación muy activa). ¿Dónde puedo encontrar (sin tener que sumergirse en el código fuente) que se utilizan en diferentes idiomas y libraryes, particularmente en Clojure y Haskell (GHC)?

¿Fue útil?

Solución

El último recurso en la STM de Clojure - aparte del código en sí mismo - es la Software memoria transaccional artículo de Mark Volkmann.

Se presenta una breve descripción de alto nivel de STM-la-enfoque (en comparación con otros enfoques de la concurrencia), resume las funciones disponibles de varios concurrencia en Clojure, a continuación, se sumerge en STM de Clojure, que describe exactamente lo que sucede durante una transacción y en última instancia, bajando la derecha a la altura de las clases individuales involucrados. Además de ofrecer una gran cantidad de información consistente sobre el funcionamiento interno de la maquinaria de Clojure STM, que contiene una serie de observaciones muy buena interesantes relacionados con características orientadas concurrencia de Clojure ya que se utilizan en los programas de Clojure idiomáticas.

El punto de entrada real a los recursos STM de Mark es esta página , actualmente con algunas diapositivas MCI además del enlace a la última versión del artículo principal STM.

Otros consejos

A un nivel muy alto, una cosa que es interesante acerca de la aplicación del STM de Clojure, es que es muy diferente de todas las otras implementaciones. Rich ha mirado mucho más hacia las bases de datos de alto rendimiento del mundo real reales que trabajos académicos sobre STM hipotéticos. Por ejemplo, STM de Clojure es que yo sepa el único STM que se utiliza Multi Versión control de concurrencia (MVCC), que es una técnica muy conocida en el mundo de base de datos (de hecho, no hay casi ninguna seria la base de datos por ahí, que no hace utilización MVCC), pero casi no se discute en absoluto en el mundo STM.

http://www.haskell.org/haskellwiki/Software_transactional_memory de Haskell (y GHC), y http://clojure.org/concurrent_programming para Clojure.

Creo que GHC viene con una biblioteca de STM, y hay algunas técnicas para STM en Clojure.

Para otros idiomas, consulte http://en.wikipedia.org/wiki/Software_transactional_memory#Implementations

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top