metodos de concurrencia

28 views
Skip to first unread message

iTony

unread,
Feb 15, 2010, 6:02:46 PM2/15/10
to clojure-hispano
Buenas clorujian@s

Apenas voy aprendiendo sobre concurrencia y paralelismo (que son dos
cosas diferentes) el unico conocimiento es lo que aprendi en la
escuela usando C++ Threads para el paralelismo y haciendo mis propios
mutex o semaforos para la concurrencia de datos. Ese es mi
conocimiento, pero creo que no es suficiente para entender las
diferentes formas de entender como manejar la concurrencia en Clojure.

Hey visto que se puede usar referencias (ref o @) y mandaralas al
futuro (future) y luego tambien tiene algo del SMT (que no entiendo si
es la forma en que clojure aloja los estados y datos), agents, dosync,
alter, atoms... y a lo mejor otras funciones o formas que no entiendo
muy bien. A lo mejor y necesito aprender mas sobre concurrencia en
general o nada mas entender las funciones y sus formas de usar, quien
sabe. Ando perdido.

Alguien puede apuntarme por el buen camino de la concurrencia en
clojure?


Saludos gente y que gusto que empieze este canal.

jneira

unread,
Feb 16, 2010, 11:01:11 AM2/16/10
to clojure-hispano
Bueno mi vision general de como trata Clojure la concurrencia es muy
basica (no mucho mas
de lo que se puede leer en http://clojure.org/concurrent_programming)
Creo que el resumen seria que Clojure intenta evitar precisamente que
el programador
tenga que preocuparse directamentre de la concurrencia a traves de dos
principios:
1.- Preservar la inmutabilidad de los datos en la medida de lo
posible. Si las funciones no
cambian valores externos a las mismas dejan de dar problemas cuando
varios hilos ejecutan la funcion concurrentemente.
2.- Delimitar donde se pueden mutar referencias globales a traves de
elementos
del lenguaje mas o menos "automatizados" (refs,agents,atoms)
Hay que olvidar los locks, semaforos, bloques sincronizados igual
que hemos olvidado el malloc ya que los lenguajes modernos manejan
automaticamente el recolector de basura

Si quieres una lista de referencias puedes echarle un vistazo a mis
links
sobre el tema:

http://www.diigo.com/user/atreyu_bbb/clojure%20concurrency

Pero personalmente me parece genial esta entrevista a Rich Hickey:
http://www.artima.com/articles/hickey_on_time.html
y le presentacion del propio autor de Clojure (hacia el final es donde
se mete
mas a fondo en el tema de la concurrencia)
http://wiki.jvmlangsummit.com/images/a/ab/HickeyJVMSummit2009.pdf

iTony

unread,
Feb 16, 2010, 3:11:17 PM2/16/10
to clojure-hispano
Muchas gracias jneira. Lo de la inmutabilidad ya me imaginaba el uso
en concurrencia y funciones sin efectos laterales.
pero gracias por explicar el nivel de uso de datos de los refs, agents
y atoms (y ahora con el nuevo cell :P).
Voy a checar los links y la presentacion de seguro aprendo mas.
Tambien pongo aqui lo que aprendi para estar seguro.
Saludos y que bien se siente hablar con una leyenda del clojure en mi
perspectiva que ya tengo tiempo siguiendo tus escritos sobre el tema.

On Feb 16, 10:01 am, jneira <atreyu....@gmail.com> wrote:
> Bueno mi vision general de como trata Clojure la concurrencia es muy
> basica (no mucho mas

> de lo que se puede leer enhttp://clojure.org/concurrent_programming)

Reply all
Reply to author
Forward
0 new messages