En el post anterior, ya vimos lo difícil que es manejar concurrencia en Java, cuando usamos únicamente las herramientas que nos ofrece el JDK. Algunos llaman a este modelo synchronize and suffer.
En esta segunda parte, veremos una alternativa, implementada desde hace mucho tiempo en Lisp, y recientemente en Clojure, un lenguaje alterno para la JVM basado en Lisp. Este modelo de llama memoria transaccional, o STM, Software Transactional Memory.
Clojure es un lenguaje alternativo para la JVM, basado en Lisp. En Clojure no hay variables, todo es inmutable. Sí, otra vez: en Clojure no hay variables. O si de plano no pueden concebir algo así, entonces pueden verlo de esta forma: en Clojure, todas las variables son inmutables. Es decir, una vez que asignan un valor a una variable, no se puede volver a modificar. Cuando dicen a=1
, ya no pueden posteriormente cambiar el valor de a
(por lo tanto, si ya no pueden variar, no se pueden llamar variables... se llaman valores).
Comentarios recientes
hace 2 semanas 21 horas
hace 3 semanas 3 días
hace 15 semanas 21 horas
hace 19 semanas 1 día
hace 26 semanas 5 días
hace 34 semanas 5 días
hace 37 semanas 2 días
hace 38 semanas 6 días
hace 42 semanas 1 día
hace 42 semanas 1 día